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

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

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

    一滴水

    java 2006年1月新開始:)
    隨筆 - 10, 文章 - 2, 評論 - 6, 引用 - 0
    數據加載中……

    Ibatis基本配置---[環境搭建]

    實現目的:
    ibatis基本環緊架設,完成對Person表的基本操作.
    數據庫:SqlServer
    表:Person

    Person.sql
    根據數據庫的到domain如下:
    Person.java
    要實現結果定義Dao接口如下:
    PersonDao.java
    現在要通過Ibatis實現完成以上接口內容,測試(這里只有正確行測試):
    PersonDaoImplTest.java
    完成測試任務完成:)
    具體Ibatis配置:
    一.jar說明
    ?ibatis-common-*.jar?ibatis公用工具類
    ?ibatis-dao-*.jar?ibatis Sql Maps框架
    ?ibatis-sqlmap-*.jar?ibatis Dao 框架
    ?junit.jar?
    ?log4j.jar
    二.database.properties存放數據庫鏈接信息
    ????driver=net.sourceforge.jtds.jdbc.Driver
    ????url
    =jdbc:jtds:sqlserver://localhost:1433/DataBaseName;tds=8.0;lastupdatecount=true
    ????username=sa
    ????password
    =***
    ??????? 注:這里使用SqlServer數據庫,驅動使用jtds下載網址http://jtds.sourceforge.net/
    三.SqlMapConfig.xml
    <?xml?version="1.0"?encoding="UTF-8"?>
    <!DOCTYPE?sqlMapConfig?PUBLIC?"-//iBATIS.com//DTD?SQL?Map?Config?2.0//EN"?"http://www.ibatis.com/dtd/sql-map-config-2.dtd">
    <sqlMapConfig>
    ????
    <properties?resource="database.properties"/>
    ????
    <settings
    ????????????
    cacheModelsEnabled="true"
    ????????????enhancementEnabled
    ="true"
    ????????????lazyLoadingEnabled
    ="true"
    ????????????maxRequests
    ="32"
    ????????????maxSessions
    ="10"
    ????????????maxTransactions
    ="5"
    ????????????useStatementNamespaces
    ="false"
    ????????????
    />
    ????
    <transactionManager?type="JDBC">
    ????????
    <dataSource?type="SIMPLE">
    ????????????
    <property?name="JDBC.Driver"?value="${driver}"/>
    ????????????
    <property?name="JDBC.ConnectionURL"?value="${url}"/>
    ????????????
    <property?name="JDBC.Username"?value="${username}"/>
    ????????????
    <property?name="JDBC.Password"?value="${password}"/>
    ????????????
    <property?name="Pool.MaximumActiveConnections"
    ??????????????????????value
    ="10"/>
    ????????????
    <property?name="Pool.MaximumIdleConnections"?value="5"/>
    ????????????
    <property?name="Pool.MaximumCheckoutTime"
    ??????????????????????value
    ="120000"/>
    ????????????
    <property?name="Pool.TimeToWait"?value="500"/>
    ????????????
    <property?name="Pool.PingQuery"
    ??????????????????????value
    ="select?1?from?ACCOUNT"/>
    ????????????
    <property?name="Pool.PingEnabled"?value="false"/>
    ????????????
    <property?name="Pool.PingConnectionsOlderThan"
    ??????????????????????value
    ="1"/>
    ????????????
    <property?name="Pool.PingConnectionsNotUsedFor"
    ??????????????????????value
    ="1"/>
    ????????
    </dataSource>
    ????
    </transactionManager>
    ????
    <sqlMap?resource="yidishui/daoIbatisImpl/sql/Person.xml"/>
    </sqlMapConfig>
    三.Person.xml
    <?xml?version="1.0"?encoding="UTF-8"?>
    <!DOCTYPE?sqlMap
    ????????PUBLIC?"-//iBATIS.com//DTD?SQL?Map?2.0//EN"
    ????????"http://www.ibatis.com/dtd/sql-map-2.dtd"
    >
    <sqlMap>
    ????
    <typeAlias?alias="Person"?type="yidishui.domain.Person"/>
    ????
    <resultMap?id="personMap"?class="Person">
    ????????
    <result?property="personName"?column="PersonName"></result>
    ????????
    <result?property="personId"?column="personId"></result>
    ????????
    <result?property="personAge"?column="personAge"></result>
    ????????
    <result?property="personEmail"?column="personEmail"></result>
    ????
    </resultMap>
    ????
    <insert?id="insertPerson"?parameterClass="Person">
    ????????INSERT?INTO?Person
    ????????(?PersonName,?PersonAge,?PersonEmail)
    ????????Values
    ????????(#personName#,#personAge#,#personEmail#)
    ????
    </insert>
    ????
    <update?id="updatePerson"?parameterClass="Person">
    ????????UPDATE?Person?SET
    ????????PersonName=#personName#,PersonAge=#personAge#,PersonEmail=#personEmail#
    ????????WHERE?PersonId=#personId#
    ????
    </update>
    ????
    <delete?id="deletePerson"?parameterClass="int">
    ????????DELETE?Person?WHERE?PersonId=#personId#
    ????
    </delete>
    ????
    <select?id="getPersonById"?parameterClass="int"?resultClass="Person">
    ????????SELECT
    ????????PersonId,PersonName,PersonAge,PersonEmail
    ????????FROM?Person
    ????????WHERE?PersonId=#personId#
    ????
    </select>
    ????
    <select?id="allPersonList"?resultMap="personMap">
    ????????SELECT
    ????????PersonId,PersonName,PersonAge,PersonEmail
    ????????FROM?Person
    ????
    </select>
    </sqlMap>
    四:SqlMapClient
    package?yidishui.daoIbatisImpl;

    import?com.ibatis.sqlmap.client.SqlMapClient;
    import?com.ibatis.sqlmap.client.SqlMapClientBuilder;
    import?com.ibatis.common.resources.Resources;

    import?java.io.Reader;

    public?class?IbatisSqlMapClient?{
    ????
    private?static?final?SqlMapClient?sqlMap;
    ????
    static?{
    ????????
    try?{
    ????????????String?resource?
    =?"yidishui/daoIbatisImpl/sql/SqlMapConfig.xml";
    ????????????Reader?reader?
    =?Resources.getResourceAsReader(resource);
    ????????????sqlMap?
    =?SqlMapClientBuilder.buildSqlMapClient(reader);

    ????????}

    ????????
    catch?(Exception?e)?{
    ????????????e.printStackTrace();
    ????????????
    throw?new?RuntimeException("Error?initializing?IbatisSqlMap?class.Cause;"?+?e);

    ????????}

    ????}

    ????
    public?static?SqlMapClient?instance()?{
    ????????
    return?sqlMap;
    ????}

    }
    五:Dao實現
    package?yidishui.daoIbatisImpl;

    import?yidishui.dao.PersonDao;
    import?yidishui.domain.Person;

    import?java.util.List;
    import?java.sql.SQLException;
    public?class?PersonDaoImpl?implements?PersonDao?{
    ????
    public?void?insertPerson(Person?person)?throws?SQLException?{
    ????????IbatisSqlMapClient.instance().insert(
    "insertPerson",?person);
    ????}


    ????
    public?void?updatePerson(Person?person)?throws?SQLException?{
    ????????IbatisSqlMapClient.instance().update(
    "updatePerson",?person);
    ????}


    ????
    public?Person?getPersonById(int?personId)?throws?SQLException?{
    ????????
    return?(Person)?IbatisSqlMapClient.instance().queryForObject("getPersonById",?personId);
    ????}


    ????
    public?void?deletePerson(int?personId)?throws?SQLException?{
    ????????IbatisSqlMapClient.instance().delete(
    "deletePerson",?personId);
    ????}


    ????
    public?List?allPersonList()?throws?SQLException?{
    ????????
    return?IbatisSqlMapClient.instance().queryForList("allPersonList",?null);
    ????}

    }

    六.添加打印日志Log4j支持(log4j.properties)
    #?Global?logging?configuration
    log4j.rootLogger
    =ERROR,?stdout

    #?SqlMap?logging?configuration
    log4j.logger.com.ibatis
    =DEBUG
    log4j.logger.com.ibatis.common.jdbc.SimpleDataSource
    =DEBUG
    log4j.logger.com.ibatis.common.jdbc.ScriptRunner
    =DEBUG
    log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate
    =DEBUG
    log4j.logger.java.sql.Connection
    =DEBUG
    log4j.logger.java.sql.Statement
    =DEBUG
    log4j.logger.java.sql.PreparedStatement
    =DEBUG
    log4j.logger.java.sql.ResultSet
    =DEBUG

    #?Console?output
    log4j.appender.stdout
    =org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout
    =org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern
    =%5p?[%t]?-?%m%n
    #sqlmap
    #dao
    七,運行測試Ok:)
    配置完成

    posted on 2006-07-19 16:54 一滴水 閱讀(4949) 評論(4)  編輯  收藏 所屬分類: ORM 、java開發總結

    評論

    # re: Ibatis基本配置---[環境搭建]  回復  更多評論   

    在線搭建,以前用Hibernate,Kodo JDO知道一點。
    2006-11-23 20:36 | Tang Anping

    # re: Ibatis基本配置---[環境搭建]  回復  更多評論   

    Person.xml文件放到哪個地方
    2006-12-27 14:50 | 南極小鴨

    # re: Ibatis基本配置---[環境搭建]  回復  更多評論   

    @南極小鴨
    這個是對應sqlmap 的配置
    <sqlMap resource="yidishui/daoIbatisImpl/sql/Person.xml"/>
    這個是放在package yidishui.daoIbatisImpl.sql 下面的
    其實可以放在任意地方,你可以去看看具體文檔,寫的比較全面.
    推薦放在classpath下面
    2006-12-28 08:25 | 一滴水[匿名]

    # re: Ibatis基本配置---[環境搭建]  回復  更多評論   

    要是有多個sqlMap怎么辦??????
    2012-03-07 14:55 | hellodyy
    主站蜘蛛池模板: 亚洲日韩久久综合中文字幕| 日本免费xxxx| 亚洲最大的成人网| 国产亚洲精品va在线| 日韩一区二区免费视频| 无码国产精品一区二区免费模式 | 鲁大师在线影院免费观看| 国产偷国产偷亚洲清高APP| 精品无码一区二区三区亚洲桃色| 精品久久久久久久免费加勒比| 最近中文字幕免费2019| 99久久免费国产特黄| yellow免费网站| 日日摸日日碰夜夜爽亚洲| 亚洲av永久综合在线观看尤物| 久久亚洲精品无码AV红樱桃| 激情综合色五月丁香六月亚洲| 国产精品二区三区免费播放心 | 亚洲欧洲国产成人精品| 久久亚洲2019中文字幕| 全亚洲最新黄色特级网站| 免费在线不卡视频| 日本媚薬痉挛在线观看免费| 毛片a级毛片免费观看品善网| 无码av免费毛片一区二区| 曰批视频免费40分钟试看天天| 无码国产精品一区二区免费模式| 成在人线av无码免费高潮喷水 | 亚洲AV午夜福利精品一区二区| 亚洲国产人成精品| 亚洲AV无码乱码在线观看性色扶 | 亚洲精品一卡2卡3卡四卡乱码| 精品亚洲AV无码一区二区| 亚洲一区二区三区精品视频 | 免费中文熟妇在线影片 | 伊人久久亚洲综合影院首页| 456亚洲人成在线播放网站| 亚洲一区精彩视频| 亚洲欧美一区二区三区日产| 亚洲狠狠婷婷综合久久| 国产偷国产偷亚洲高清在线|