<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 閱讀(4455) 評論(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
    主站蜘蛛池模板: 欧美男同gv免费网站观看| 久久精品成人免费观看| 黄色免费在线观看网址| 国产精品九九久久免费视频| A级毛片成人网站免费看| 日本在线免费观看| 国产在线观看免费观看不卡| 在线a毛片免费视频观看| 午夜亚洲国产成人不卡在线| 亚洲综合日韩久久成人AV| 亚洲人成在线观看| 亚洲乱码无限2021芒果| 综合一区自拍亚洲综合图区| 中文字字幕在线高清免费电影| 91香蕉在线观看免费高清| 成人免费视频试看120秒| 亚洲AⅤ优女AV综合久久久| 久久久久久亚洲精品中文字幕| 亚洲大片免费观看| 色偷偷噜噜噜亚洲男人| 青青操视频在线免费观看| 国产大片线上免费观看| 亚洲国产一区二区三区| 666精品国产精品亚洲| 国产精品亚洲一区二区在线观看| 国产一级a毛一级a看免费人娇| 国产精品久久久久久久久免费| 国产乱子伦精品免费无码专区| 亚洲AV无码国产精品麻豆天美 | 毛片a级三毛片免费播放| 亚洲国产一成久久精品国产成人综合 | 人妻丰满熟妇无码区免费 | 免费大香伊蕉在人线国产| aⅴ在线免费观看| 久久青草精品38国产免费| 成年在线网站免费观看无广告 | 中国精品一级毛片免费播放| 大地资源二在线观看免费高清| 国产亚洲精品精品国产亚洲综合| 亚洲av极品无码专区在线观看| 一个人晚上在线观看的免费视频 |