<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://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无码专区| 国产精品亚洲片在线| 亚洲av无码国产综合专区| 91福利免费视频| 亚洲高清免费在线观看| 无码囯产精品一区二区免费| 亚洲人成在线影院| 在线a免费观看最新网站| 亚洲黄色片免费看| 国产精品成人免费视频网站京东| 亚洲av永久综合在线观看尤物| 国内精品免费麻豆网站91麻豆| 亚洲一区无码中文字幕乱码| 毛片基地免费观看| 国产成人亚洲精品91专区高清| 亚洲国产aⅴ综合网| 久久免费99精品国产自在现线 | 免费VA在线观看无码| mm1313亚洲精品无码又大又粗| 成人免费网站久久久| 亚洲国产精品一区二区久久hs| 色欲国产麻豆一精品一AV一免费| 亚洲另类自拍丝袜第1页| 永久免费看mv网站入口| 亚洲一区二区三区免费| 久久精品国产96精品亚洲| 免费A级毛片无码免费视| 精品国产_亚洲人成在线| 亚洲人成人一区二区三区| 日韩不卡免费视频| free哆拍拍免费永久视频| 久久精品亚洲一区二区三区浴池 | 国产精品免费αv视频| 久久精品国产亚洲av四虎| 猫咪社区免费资源在线观看| 免费看一级高潮毛片| 亚洲黄色中文字幕| 亚洲高清最新av网站| 在线永久看片免费的视频| 免费福利资源站在线视频| 亚洲精品福利网泷泽萝拉|