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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值