<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 165, comments - 198, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    實用,簡單 ibatis dome (包含多對一;一對多)

    Posted on 2008-07-14 14:45 G_G 閱讀(4454) 評論(2)  編輯  收藏 所屬分類: hibernateJDBC
    dome
    使用hsql 數據庫;
    一對多,多對一;


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

    先看測試運行:
    ????@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();
    ????????}
    ????}


    運行結果:
    hsql 數據庫 初始化
    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)

    運行結果
    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?;
    ???
    ??? //得到此對象父節點 (多對一)
    ????
    private?Level?flevel?;
    ??? //得到此對象孩子節點 (一對多)
    ????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: 實用,簡單 ibatis dome (包含多對一;一對多)  回復  更多評論   

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

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

    2008-07-14 15:36 by JAVAFANS
    尚學堂DRP 148班
    http://www.ibeifeng.com/read.php?tid=30&u=1007
    【北大青鳥J2EE培訓視頻】
    http://www.ibeifeng.com/read.php?tid=641&u=1007
    【傳智播客 AJAX內部精品視頻】
    http://www.ibeifeng.com/read.php?tid=2338&u=1007
    【新東方 J2ee系列】
    http://www.ibeifeng.com/read.php?tid=531&u=1007
    面試大全(包含了Java和數據庫)
    http://www.ibeifeng.com/read.php?tid=155&u=1007
    主站蜘蛛池模板: 久久久精品国产亚洲成人满18免费网站| 亚洲欧美成aⅴ人在线观看| 岛国岛国免费V片在线观看| 免费国产在线观看老王影院| 亚洲精品乱码久久久久蜜桃| 欧洲美熟女乱又伦免费视频 | 91av视频免费在线观看| 亚洲国产香蕉碰碰人人| 免费女人高潮流视频在线观看| 国产aⅴ无码专区亚洲av| 热re99久久6国产精品免费| 亚洲视频在线免费观看| 久视频精品免费观看99| 亚洲偷自精品三十六区| 午夜免费福利在线| 人妻无码中文字幕免费视频蜜桃 | 一级毛片aaaaaa视频免费看| 亚洲日韩aⅴ在线视频| 久久99青青精品免费观看| 亚洲欧洲自拍拍偷午夜色| 成人AV免费网址在线观看| 国产亚洲精品AAAA片APP| 免费人妻av无码专区| 叮咚影视在线观看免费完整版| 亚洲国产精品热久久| 亚色九九九全国免费视频| 老子影院午夜伦不卡亚洲| 亚洲午夜久久久影院| 四虎在线视频免费观看视频| 亚洲精品无码专区在线| 久久久久亚洲精品天堂久久久久久 | 德国女人一级毛片免费| 免费无遮挡无遮羞在线看| 日本亚洲视频在线| 久久久久久国产精品免费免费| 羞羞漫画登录页面免费| 亚洲精品免费在线观看| 全免费A级毛片免费看网站| 97国免费在线视频| 亚洲国产午夜精品理论片在线播放 | 日韩在线观看视频免费|