iBATIS SQLMap配置Demo浅析

开发 后端
iBATIS SQLMap配置Demo向你介绍iBATIS SQLMap的具体配置以及实例。

在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就向你介绍到这里,希望对你有所帮助。

【编辑推荐】

  1. iBATIS分页实例中ObjectDataSource的应用浅析
  2. iBATIS模糊查询的实现实例浅析
  3. iBATIS动态查询的实现浅析
  4. iBATIS DAO入门基础教程
  5. iBATIS.NET配置六点总结
责任编辑:仲衡 来源: CSDN博客
相关推荐

2009-07-22 15:21:00

iBATIS SQLM

2009-07-21 11:12:00

iBATIS配置

2009-07-22 09:44:05

iBATIS Para

2009-07-17 16:49:18

iBATIS XML配

2009-07-21 11:17:46

iBATISDAO的配置

2009-07-22 16:27:24

iBATIS配置类iBATIS操作类

2009-07-21 17:39:50

iBATIS的多对多映

2009-07-22 10:42:59

iBATIS Cach

2009-07-15 17:58:07

iBATIS 动态映射

2009-07-16 10:23:30

iBATIS工作原理

2009-07-16 09:14:26

iBATIS DAO

2009-07-20 18:00:16

iBATIS DAO事

2009-07-15 17:19:31

iBATIS Ecli

2009-07-22 10:03:11

iBATIS Resu

2009-07-17 10:32:45

iBATIS MapB

2009-07-17 10:59:59

iBATIS接口

2009-07-22 16:02:14

iBATIS参数

2009-07-17 09:44:40

iBATIS教程

2009-07-16 13:08:09

iBATIS快速创建应

2009-07-15 16:42:03

iBATIS读写CLO
点赞
收藏

51CTO技术栈公众号