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

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