<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 閱讀(4462) 評論(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
    主站蜘蛛池模板: 中文字幕精品亚洲无线码一区应用 | 日韩av无码久久精品免费| 亚洲宅男精品一区在线观看| 亚洲熟妇av午夜无码不卡| 可以免费看的卡一卡二| 亚洲国产综合在线| 免费精品国产自产拍在| 最新亚洲春色Av无码专区| 人妻视频一区二区三区免费| 在线亚洲高清揄拍自拍一品区| AV免费网址在线观看| 亚洲精品日韩一区二区小说| 国产精品无码素人福利免费| 精品国产日韩亚洲一区在线| 免费a在线观看播放| 一级毛片免费播放男男| 最近免费中文在线视频| 亚洲三级在线视频| 搡女人真爽免费视频大全| 亚洲av成人一区二区三区在线播放| 一个人看的www免费视频在线观看| 成人影片麻豆国产影片免费观看 | 91成人免费福利网站在线| 永久免费观看的毛片的网站| 亚洲aⅴ无码专区在线观看春色 | 免费在线观看亚洲| 国产亚洲真人做受在线观看| 久久久久久免费一区二区三区| 久久久婷婷五月亚洲97号色| 亚洲精品视频免费观看| 久久精品国产精品亚洲艾草网| 国产在线jyzzjyzz免费麻豆| 亚洲精品乱码久久久久久按摩 | 亚洲欧洲日韩不卡| 成人免费无码大片A毛片抽搐| 老司机福利在线免费观看| 亚洲成AV人片在线观看| 女人被弄到高潮的免费视频 | 99在线热视频只有精品免费| 亚洲欧美黑人猛交群| 亚洲人成网77777色在线播放|