<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://m.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
    主站蜘蛛池模板: 亚洲高清最新av网站| 国产大片91精品免费观看不卡| 亚洲精品美女久久7777777| 亚洲丰满熟女一区二区哦| 国产片AV片永久免费观看| 亚洲欧洲免费视频| 欧美a级在线现免费观看| 亚洲国产精品人人做人人爱| 黄页网站在线视频免费| 无码囯产精品一区二区免费 | 亚洲日韩av无码中文| 国产人成网在线播放VA免费| 蜜桃AV无码免费看永久| 亚洲Aⅴ无码一区二区二三区软件| 中文字幕亚洲第一在线| 麻豆亚洲AV成人无码久久精品| 99在线热视频只有精品免费| 亚洲免费日韩无码系列| 国产亚洲精品bv在线观看| www免费黄色网| 午夜一级免费视频| 亚洲国产日韩在线视频| 羞羞视频在线免费观看| 亚洲精品网站在线观看不卡无广告| 国产精品99爱免费视频| 亚洲毛片基地日韩毛片基地| 两个人看www免费视频| 国产美女精品久久久久久久免费| 久久丫精品国产亚洲av| 国产午夜无码精品免费看| 久久精品亚洲乱码伦伦中文| 亚洲欧洲无码AV不卡在线| 亚洲伊人成无码综合网| 一级看片免费视频囗交| 在线观看91精品国产不卡免费| 亚洲综合一区国产精品| 最近的免费中文字幕视频| 亚洲最大中文字幕| 最近最好最新2019中文字幕免费| 亚洲A∨无码一区二区三区| 日本一区午夜艳熟免费|