现在的位置: 首页 > 综合 > 正文

iBATIS与Spring整合

2013年09月03日 ⁄ 综合 ⁄ 共 4709字 ⁄ 字号 评论关闭

接着iBATIS的入门实例来说,ibatis与Spring的整合其实跟hibernate与Spring的整合大同小异,都是一个模子的,回想hibernate整合spring:主要是在spring中配置,需要数据源,需要hibernate配置文件,需要sessionFactory。iBATIS走的路线完全一致,直接看配置就明白

先是src/sqlmap.xml

 

Xml代码  收藏代码
  1. <span style="font-size: large;"><?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"  
  3.     "http://www.ibatis.com/dtd/sql-map-config-2.dtd">  
  4. <sqlMapConfig>  
  5.   <settings cacheModelsEnabled="true" enhancementEnabled="true" lazyLoadingEnabled="true" maxRequests="32"  
  6.     maxSessions="10" maxTransactions="5" useStatementNamespaces="true" />  
  7.   
  8.     <sqlMap resource="com/javacrazyer/myweb/ibatis/SysDeliverCompany.xml" />  
  9.     <sqlMap resource="com/javacrazyer/myweb/ibatis/SysArea.xml" />  
  10.     <sqlMap resource="com/javacrazyer/myweb/ibatis/SmsActivityExpense.xml" />  
  11.     <sqlMap resource="com/javacrazyer/myweb/ibatis/deptMgr.xml" />  
  12.     <sqlMap resource="com/javacrazyer/myweb/ibatis/userMgr.xml" />  
  13.     <sqlMap resource="com/javacrazyer/myweb/ibatis/SysCost.xml" />  
  14.     <sqlMap resource="com/javacrazyer/myweb/ibatis/orders.xml" />  
  15.     <sqlMap resource="com/javacrazyer/myweb/ibatis/privilege.xml" />  
  16.     <sqlMap resource="com/javacrazyer/myweb/ibatis/app.xml" />  
  17.     
  18. </sqlMapConfig></span>  

 

 很显然这个配置里没有配数据源,配置到spring即可

 applictionContext.xml

 

Xml代码  收藏代码
  1. <span style="font-size: large;"><?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"  
  4.     xmlns:context="http://www.springframework.org/schema/context"  
  5.     xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"  
  6.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
  7.     http://www.springframework.org/schema/context   
  8.     http://www.springframework.org/schema/context/spring-context-3.0.xsd  
  9.     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd  
  10.     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">  
  11.   
  12.      <!--数据源,用的是spring容器自带的数据源,-->  
  13.     <bean id="dataSource"  
  14.         class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
  15.         <property name="driverClassName">  
  16.             <value>com.microsoft.sqlserver.jdbc.SQLServerDriver</value>  
  17.         </property>  
  18.         <property name="url">  
  19.             <value>jdbc:sqlserver://localhost:1433;databaseName=dbName  
  20.             </value>  
  21.         </property>  
  22.         <property name="username">  
  23.             <value>sa</value>  
  24.         </property>  
  25.         <property name="password">  
  26.             <value>123</value>  
  27.         </property>  
  28.           
  29.         <property name="connectionProperties">  
  30.             <props>  
  31.                 <!--    
  32.                 <prop key="useUnicode">true</prop>  
  33.                 <prop key="characterEncoding">utf-8</prop>  
  34.                 连接池中连接用完时,新的请求等待时间,毫秒,-1表示无限等待  
  35.                 <prop key="maxWait">1000</prop>  
  36.                 -->  
  37.                 <!-- 是否清理空闲连接 -->  
  38.                 <prop key="removeAbandoned">true</prop>  
  39.                 <!-- 活动连接的最大空闲时间,秒 -->  
  40.                 <prop key="removeAbandonedTimeout">60</prop>  
  41.                 <!-- 初始连接数量 -->  
  42.                 <prop key="initialSize">3</prop>  
  43.                 <!-- 连接池支持的最大连接数,0表示无限制 -->  
  44.                 <prop key="maxActive">50</prop>  
  45.                 <!-- 连接池中最多可空闲maxIdle个连接,0表示无限制   -->  
  46.                 <prop key="maxIdle">10</prop>  
  47.                 <!-- 连接池中最小空闲maxIdle个连接   -->  
  48.                 <prop key="minIdle">2</prop>  
  49.             </props>  
  50.         </property>  
  51.     </bean>  
  52.     <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">  
  53.         <property name="configLocation" value="classpath:sqlmap.xml" />  
  54.         <!-- 从IBATIS基本示例可以看到,sqlmap.xml中是应该配置dataSource的,不过没配置也没关系,可以在spring中继续配 -->  
  55.         <property name="dataSource" ref="dataSource" />  
  56.         <!--  
  57.             <property name="useTransactionAwareDataSource"  
  58.             value="true"></property>  
  59.         -->  
  60.     </bean>  
  61.     <!--根据sqlMapClien创建一个SqlMapClient模版类-->  
  62.     <!-- 那么这个sqlMapClientTemplate就相当于sessionFactory获取的session -->  
  63.     <bean id="sqlMapClientTemplate" class="org.springframework.orm.ibatis.SqlMapClientTemplate">  
  64.         <property name="sqlMapClient">  
  65.             <ref bean="sqlMapClient" />  
  66.         </property>  
  67.     </bean>  
  68.       
  69. </beans></span>  

 然后在需要的类写上个private SqlMapClientTemplate  sqlMapClientTemplate 当做字段并提供SETTER方法,之后在applicationContext.xml中注入sqlMapClientTemplate即可直接使用了,具体的方法与入门实例sqlMapper的方

法一样

抱歉!评论已关闭.