posts - 165, comments - 198, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
          dome
          使用hsql 數(shù)據(jù)庫;
          一對多,多對一;


          可以直接運(yùn)行的 dome:http://www.aygfsteel.com/Files/Good-Game/iba.rar
          本例指涉及到查詢,為了簡單沒有事務(wù),和service層

          先看測試運(yùn)行:
          ????@Test
          ????
          public?void?testLevel()?{

          ????????
          try?{

          ????????????Level?level?
          =?(Level)DaoConfig.getSqlMap().queryForObject("level.getLevelId",?new?Integer(2)?);
          ????????????System.out.println(
          "f_level="+level.getFlevel().getName());

          ???????????
          System.out.println("->level="+level.getName());
          ????????????for(Level?ltmp?:?level.getClevel()){
          ????????????????System.out.println(
          "c_root="+ltmp.getName());
          ????????????}
          ????????}?
          catch?(SQLException?e)?{
          ????????????e.printStackTrace();
          ????????}
          ????}


          運(yùn)行結(jié)果:
          hsql 數(shù)據(jù)庫 初始化
          create
          ?table?level??(?????id?int?not?null,?????name?varchar(80)?null,?????fid?int?,?????constraint?pk_supplier?primary?key?(id),?????constraint?fk_item_1?foreign?key?(fid)?????????references?level?(id)?)?
          create?index?levelName?on?level?(name)?
          insert?into?level?(id,name,fid)?values(1,'root',null)?
          insert?into?level?(id,name,fid)?values(2,'level_1',1)?
          insert?into?level?(id,name,fid)?values(3,'root_2',1)?
          insert?into?level?(id,name,fid)?values(4,'root_1_1',2)?
          insert?into?level?(id,name,fid)?values(5,'root_1_2',2)?
          insert?into?level?(id,name,fid)?values(6,'root_1_1_1',4)

          運(yùn)行結(jié)果
          f_level
          =root
          ->level=level_1
          ????c_level
          =root_1_1
          ????c_level
          =root_1_2


          DaoConfig工具類:
          package?test.persistence;

          import?com.ibatis.common.jdbc.ScriptRunner;
          import?com.ibatis.common.resources.Resources;
          import?com.ibatis.sqlmap.client.SqlMapClient;
          import?com.ibatis.sqlmap.client.SqlMapClientBuilder;

          import?java.io.IOException;
          import?java.io.PrintWriter;
          import?java.io.Reader;
          import?java.sql.Connection;
          import?java.sql.DriverManager;
          import?java.util.Properties;
          /**
          ?*?damo?api
          ?*?
          http://portals.apache.org/bridges/multiproject/jpetstore/apidocs/overview-summary.html
          ?*?
          @author?Administrator
          ?*
          ?
          */
          public?class?DaoConfig?{

          ??
          private?static?SqlMapClient?sqlMap?=?null?;
          ??
          static?{
          ????
          try?{
          ??????Properties?props?
          =?Resources.getResourceAsProperties("properties/database.properties");
          ??????String?url?
          =?props.getProperty("url");
          ??????String?driver?
          =?props.getProperty("driver");
          ??????String?username?
          =?props.getProperty("username");
          ??????String?password?
          =?props.getProperty("password");
          ??????
          if?(url.equals("jdbc:hsqldb:mem:jpetstore"))?{
          ????????Class.forName(driver).newInstance();
          ????????Connection?conn?
          =?DriverManager.getConnection(url,?username,?password);
          ????????
          try?{
          ??????????ScriptRunner?runner?
          =?new?ScriptRunner(conn,?false,?false);
          ??????????runner.setErrorLogWriter(?
          new?PrintWriter(??System.out?)?);
          ??????????runner.setLogWriter(
          new?PrintWriter(??System.out?));
          ??????????runner.runScript(Resources.getResourceAsReader(
          "hsql/test.sql"));
          ????????}
          catch?(Exception?e)?{
          ????????????e.printStackTrace();
          ????????}?
          finally?{
          ??????????conn.close();
          ????????}
          ??????}
          ??????
          ??????
          ??????String?resource?
          =?"test/persistence/sql-map-config.xml";
          ??????Reader?reader?
          =?Resources.getResourceAsReader?(resource);
          ??????sqlMap?
          =?SqlMapClientBuilder.buildSqlMapClient(reader);
          ????}?
          catch?(Exception?e)?{
          ??????
          throw?new?RuntimeException("Description.??Cause:?"?+?e,?e);
          ????}
          ??}

          ??
          public?static?SqlMapClient?getSqlMap(){
          ??????
          return?sqlMap?;
          ??}

          }


          dao:

          public?class?LevelDao?{
          ?????
          public?static?List<Level>??getAll(){
          ????????
          try?{
          ????????????
          return?DaoConfig.getSqlMap().queryForList("getAllLevel");
          ????????}?
          catch?(Exception?e)?{
          ????????????e.printStackTrace();
          ????????}
          ????????
          return?null?;
          ????}
          }





          持久類說明
          package?test.domain;

          import?java.util.List;

          public?class?Level?{
          ????
          private?Integer?id?;
          ????
          private?String?name?;
          ???
          ??? //得到此對象父節(jié)點(diǎn) (多對一)
          ????
          private?Level?flevel?;
          ??? //得到此對象孩子節(jié)點(diǎn) (一對多)
          ????private?List<Level>?clevel;


          ????
          public?Integer?getId()?{
          ????????
          return?id;
          ????}

          ????
          public?void?setId(Integer?id)?{
          ????????
          this.id?=?id;
          ????}

          ????
          public?String?getName()?{
          ????????
          return?name;
          ????}

          ????
          public?void?setName(String?name)?{
          ????????
          this.name?=?name;
          ????}



          ????
          public?Level?getFlevel()?{
          ????????
          return?flevel;
          ????}

          ????
          public?void?setFlevel(Level?flevel)?{
          ????????
          this.flevel?=?flevel;
          ????}

          ????
          public?List<Level>?getClevel()?{
          ????????
          return?clevel;
          ????}

          ????
          public?void?setClevel(List<Level>?clevel)?{
          ????????
          this.clevel?=?clevel;
          ????}

          }


          level.xml
          <?xml?version="1.0"?encoding="UTF-8"??>

          <!DOCTYPE?sqlMap?PUBLIC?"-//ibatis.apache.org//DTD?SQL?Map?2.0//EN"
          ????"http://ibatis.apache.org/dtd/sql-map-2.dtd"
          >

          <sqlMap?namespace="level">

          ????
          <typeAlias?alias="level"?type="test.domain.Level"?/>
          ????
          ????
          <resultMap?class="level"?id="getLevelByFa">
          ????????
          <result?property="id"?column="id"?/>??
          ????????
          <result?property="name"?column="name"?/>
          ????????
          <result?property="flevel"?column="fid"?select="level.getLevelId"/>
          ????????
          <result?property="clevel"?column="id"?select="level.getLevelByfId"/>
          ????
          </resultMap>


          ?????
          <select?id="getLevelId"?resultClass="level"?parameterClass="int"?resultMap="getLevelByFa"??>??
          ?????????select?
          ?????????id?,
          ?????????name?,
          ?????????fid?
          ?????????from?level???
          ?????????WHERE?id?=#id#??
          ?????
          </select>
          ????
          ????
          ?????
          <select?id="getLevelByfId"?resultClass="level"?parameterClass="int"?resultMap="getLevelByFa"??>??
          ?????????select?
          ?????????id?,
          ?????????name?,
          ?????????fid?
          ?????????from?level???
          ?????????WHERE?fid?=#id#??
          ?????
          </select>
          </sqlMap>



          map confg
          <?xml?version="1.0"?encoding="UTF-8"??>

          <!DOCTYPE?sqlMapConfig?PUBLIC?"-//ibatis.apache.org//DTD?SQL?Map?Config?2.0//EN"
          ????"http://ibatis.apache.org/dtd/sql-map-config-2.dtd"
          >

          <sqlMapConfig?>?
          ????
          <properties?resource="properties/database.properties"/>
          ????
          <settings?
          ????????
          useStatementNamespaces="true"
          ????
          />??????
          ?
          ?
          ??
          <transactionManager?type="JDBC">
          ????
          <dataSource?type="SIMPLE">
          ??????
          <property?value="${driver}"?name="JDBC.Driver"/>
          ??????
          <property?value="${url}"?name="JDBC.ConnectionURL"/>
          ??????
          <property?value="${username}"?name="JDBC.Username"/>
          ??????
          <property?value="${password}"?name="JDBC.Password"/>
          ????
          </dataSource>
          ??
          </transactionManager>

          ??
          <sqlMap?resource="test/persistence/level.xml"/>


          </sqlMapConfig>








          評論

          # re: 實(shí)用,簡單 ibatis dome (包含多對一;一對多)  回復(fù)  更多評論   

          2008-07-14 15:35 by JAVAFAN
          j2ee方面:_______________________________________________
          尚學(xué)堂DRP 148班
          http://www.ibeifeng.com/read.php?tid=30&u=1007
          【北大青鳥J2EE培訓(xùn)視頻】
          http://www.ibeifeng.com/read.php?tid=641&u=1007
          【傳智播客 AJAX內(nèi)部精品視頻】

          # re: 實(shí)用,簡單 ibatis dome (包含多對一;一對多)[未登錄]  回復(fù)  更多評論   

          2008-07-14 15:36 by JAVAFANS
          尚學(xué)堂DRP 148班
          http://www.ibeifeng.com/read.php?tid=30&u=1007
          【北大青鳥J2EE培訓(xùn)視頻】
          http://www.ibeifeng.com/read.php?tid=641&u=1007
          【傳智播客 AJAX內(nèi)部精品視頻】
          http://www.ibeifeng.com/read.php?tid=2338&u=1007
          【新東方 J2ee系列】
          http://www.ibeifeng.com/read.php?tid=531&u=1007
          面試大全(包含了Java和數(shù)據(jù)庫)
          http://www.ibeifeng.com/read.php?tid=155&u=1007
          主站蜘蛛池模板: 黔东| 晴隆县| 丹江口市| 海兴县| 玉溪市| 朝阳区| 岳西县| 响水县| 余姚市| 平乡县| 读书| 吉林市| 阿瓦提县| 巍山| 绥宁县| 长兴县| 丽江市| 昌邑市| 榆树市| 镇巴县| 萝北县| 航空| 晋江市| 聂荣县| 涿州市| 井冈山市| 剑川县| 陈巴尔虎旗| 霍州市| 宁德市| 南川市| 三都| 焉耆| 增城市| 拉萨市| 柳州市| 都昌县| 亳州市| 定兴县| 铜梁县| 山东|