iBATIS SQLMap配置Demo淺析

 

在Spring的jpestore中,數據持久層用到了iBATIS SQLMaps,這裏寫一個iBATIS的簡單Demo,作爲iBATIS的學習筆記。

iBATIS的SQLMap配置文件是XML形式,一般叫SqlMapConfig.xml,如下:

Xml代碼

  1. ﹤?xml version="1.0" encoding="UTF-8"?﹥       
  2. ﹤!DOCTYPE sqlMapConfig  PUBLIC "-//iBATIS.com//DTD SQL Map 
  3. Config 2.0/" "http://www.ibatis.com/dtd/sql-map-config-2.dtd"﹥    
  4.     
  5. ﹤sqlMapConfig﹥    
  6.     ﹤!--settings配置是可選的,用來控制sqlMapping的詳細配置,
  7. 主要是事務處理。參數具體含義請參考ibatis開發指南--﹥    
  8.     ﹤settings cacheModelsEnabled="true" enhancementEnabled="true"    
  9.         lazyLoadingEnabled="true" errorTracingEnabled="true" maxRequests="32"    
  10.         maxSessions="10" maxTransactions="5" useStatementNamespaces="false" /﹥    
  11.     ﹤!--使用SimpleDataSource配置數據源,DataSource的iBATIS實現:
  12. SimpleDataSource類,Jakarta DBCP(Commons),
  13. 和可通過JNDI上下文查找的DataSource(即應用服務器中的DataSource)--﹥    
  14.     ﹤transactionManager type="JDBC"﹥    
  15.     
  16.         ﹤dataSource type="SIMPLE"﹥    
  17.             ﹤property name="JDBC.Driver"      
  18. value="com.mysql.jdbc.Driver" /﹥    
  19.             ﹤property name="JDBC.ConnectionURL"      
  20. value="jdbc:mysql://127.0.0.1:3306/jpetstore?" /﹥    
  21.             ﹤property name="JDBC.Username" value="root" /﹥    
  22.             ﹤property name="JDBC.Password" value="" /﹥    
  23.             ﹤property name="Pool.MaximumActiveConnections" value="10" /﹥    
  24.             ﹤property name="Pool.MaximumIdleConnections" value="5" /﹥    
  25.             ﹤property name="Pool.MaximumCheckoutTime" value="120000" /﹥    
  26.             ﹤property name="Pool.TimeToWait" value="500" /﹥    
  27.             ﹤property name="Pool.PingQuery" value="select 1 from ACCOUNT" /﹥    
  28.             ﹤property name="Pool.PingEnabled" value="false" /﹥    
  29.             ﹤property name="Pool.PingConnectionsOlderThan" value="1" /﹥    
  30.             ﹤property name="Pool.PingConnectionsNotUsedFor" value="1" /﹥    
  31.         ﹤/dataSource﹥    
  32.     ﹤/transactionManager﹥    
  33.     ﹤!--引入所有的SQL Map配置文件,這裏的路徑是classpath的相對路徑,
  34. 例如下面的配置說明引入Account.xml,位置在com/quqworld/test/ibatis包內--﹥    
  35.     ﹤sqlMap resource="com/quqworld/test/ibatis/Account.xml" /﹥    
  36.          
  37. ﹤/sqlMapConfig﹥      

接下來是iBATIS SQLMap映射文件Account.xml:

Xml代碼

  1. ﹤?xml version="1.0" encoding="UTF-8"?﹥    
  2. ﹤!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"      
  3.     "http://www.ibatis.com/dtd/sql-map-2.dtd"﹥    
  4.     
  5. ﹤sqlMap namespace="Account"﹥    
  6.     ﹤!--在SQL Map框架中,Result Map是極其重要的組件。
  7. 在執行查詢Mapped Statement時,resultMap負責將結果集的列值映射成Java Bean的屬性值。--﹥    
  8.     ﹤resultMap id="result"    
  9.         class="org.springframework.samples.jpetstore.domain.Account"﹥    
  10.         ﹤result property="username" column="userid" columnIndex="1" /﹥    
  11.         ﹤result property="email" column="email" columnIndex="2" /﹥    
  12.         ﹤result property="firstName" column="firstname" columnIndex="3" /﹥    
  13.         ﹤result property="lastName" column="lastname" columnIndex="4" /﹥    
  14.         ﹤result property="status" column="status" columnIndex="5" /﹥    
  15.         ﹤result property="address1" column="addr1" columnIndex="6" /﹥    
  16.         ﹤result property="address2" column="addr2" columnIndex="7" /﹥    
  17.         ﹤result property="city" column="city" columnIndex="8" /﹥    
  18.         ﹤result property="state" column="state" columnIndex="9" /﹥    
  19.         ﹤result property="zip" column="zip" columnIndex="10" /﹥    
  20.         ﹤result property="country" column="country" columnIndex="11" /﹥    
  21.         ﹤result property="phone" column="phone" columnIndex="12" /﹥﹤/resultMap﹥    
  22.     
  23.     ﹤select id="getAllAccountByUserid" resultMap="result"﹥    
  24.         select     
  25.             account.userid,     
  26.             account.email,     
  27.             account.firstname,     
  28.             account.lastname,     
  29.             account.status,     
  30.             account.addr1,     
  31.             account.addr2,     
  32.             account.city,     
  33.             account.state,     
  34.             account.zip,     
  35.             account.country,     
  36.             account.phone     
  37.             from account     
  38.             where account.userid=#value#     
  39.     ﹤/select﹥    
  40. ﹤/sqlMap﹥   

下面是iBATIS SQLMap的Java代碼:

Java代碼

  1. try {     
  2.         String resource = "com/quqworld/test/ibatis/SqlMapConfig.xml";     
  3.         Reader reader = Resources.getResourceAsReader(resource);     
  4.     
  5.         SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);     
  6.         Object object =  sqlMap.queryForObject(        
  7.                 "getAllAccountByUserid""ACID",new Account());     
  8.         System.out.println("select result: " +object);     
  9.     
  10.     } catch (Exception e) {     
  11.         e.printStackTrace();     
  12.     }   

iBATIS SQLMap的配置Demo就向你介紹到這裏,希望對你有所幫助。

======================================================

http://developer.51cto.com/art/200907/138627.htm

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章