一滴水

          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 一滴水 閱讀(4953) 評論(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
          主站蜘蛛池模板: 行唐县| 许昌县| 沛县| 茶陵县| 抚松县| 个旧市| 中超| 镶黄旗| 延津县| 威远县| 监利县| 胶州市| 葫芦岛市| 霍州市| 平罗县| 长宁县| 翼城县| 三台县| 霞浦县| 都兰县| 冕宁县| 南汇区| 信宜市| 吉林省| 潮州市| 涿鹿县| 闸北区| 边坝县| 游戏| 宁陵县| 铜梁县| 晋州市| 和林格尔县| 梅州市| 乳山市| 绥宁县| 南陵县| 金华市| 辽宁省| 牡丹江市| 襄垣县|