<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
    主站蜘蛛池模板: 亚洲AV无码国产精品色| 亚洲日本精品一区二区| 日韩亚洲人成在线| 国产大片免费网站不卡美女| 91亚洲一区二区在线观看不卡| 久久成人a毛片免费观看网站| 婷婷亚洲久悠悠色悠在线播放| 很黄很污的网站免费| 无码乱人伦一区二区亚洲| 57pao一国产成视频永久免费| 午夜影视日本亚洲欧洲精品一区| 少妇太爽了在线观看免费视频| 亚洲a在线视频视频| 最近在线2018视频免费观看| 亚洲人成电影网站| 免费观看的a级毛片的网站| 亚洲AV无码资源在线观看| xvideos亚洲永久网址| baoyu122.永久免费视频| 亚洲国产精品久久久久婷婷软件 | 一个人看www在线高清免费看| 亚洲乱码日产精品BD在线观看| 最近的免费中文字幕视频| 亚洲jizzjizz少妇| 精品亚洲成α人无码成α在线观看 | 国产性生交xxxxx免费| 亚洲男人天堂2018av| 日本高清免费不卡在线| 亚洲s码欧洲m码吹潮| 国产成人亚洲综合无码| 最近2019中文字幕免费大全5 | 亚洲国产中文在线视频| 国产成人无码免费视频97| 国产精品免费久久| 亚洲毛片免费视频| 免费人成在线观看网站品爱网日本| 国内精品免费视频精选在线观看| 亚洲色精品VR一区区三区| 亚洲日韩精品A∨片无码| 性xxxxx免费视频播放| www.xxxx.com日本免费|