Spring集成iBatis

[color=red]使用spring2.5.6和ibatis2.3.4[/color]

首先,数据源照旧,还是用c3p0好了。

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:jdbc.properties</value>
<value>classpath:c3p0.properties</value>
</list>
</property>
</bean>

<bean id="dataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass" value="${jdbc.driverClass}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="minPoolSize" value="${c3p0.minPoolSize}" />
<property name="maxPoolSize" value="${c3p0.maxPoolSize}" />
<property name="initialPoolSize" value="${c3p0.initialPoolSize}"/>
</bean>


在Spring中一种较好的方式,使用SqlMapClientTemplate。
这样避免处理SqlException。

<bean id="sqlMapClient"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:SqlMapConfig.xml" />
</bean>

<bean id="sqlMapClientTemplate"
class="org.springframework.orm.ibatis.SqlMapClientTemplate">
<property name="sqlMapClient" ref="sqlMapClient" />
</bean>


事务控制可以使用DataSourceTransactionManager
用@Transactional标注可以,在配置文件里指定也可以。

<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>

<tx:advice id="txAdvice">
<tx:attributes>
<tx:method name="find*" read-only="true" propagation="SUPPORTS"/>
<tx:method name="*"/>
</tx:attributes>
</tx:advice>

<aop:config>
<aop:pointcut expression="execution(* *..dao.impl.*.*(..))" id="dao-pc"/>
<aop:pointcut expression="execution(* *..service.impl.*.*(..))" id="service-pc"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="dao-pc"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="service-pc"/>
</aop:config>

<tx:annotation-driven />


因为数据源已经在Spring配置文件中指定了。
SqlMapConfig.xml就相当简单了。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">

<sqlMapConfig>
<settings
cacheModelsEnabled="true"
enhancementEnabled="true"
lazyLoadingEnabled="true"
errorTracingEnabled="true"
useStatementNamespaces="false"
/>

<sqlMap resource="com/tarena/ibatis/domain/Employee.map.xml" />
</sqlMapConfig>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值