[color=red]使用spring2.5.6和ibatis2.3.4[/color]
首先,数据源照旧,还是用c3p0好了。
在Spring中一种较好的方式,使用SqlMapClientTemplate。
这样避免处理SqlException。
事务控制可以使用DataSourceTransactionManager
用@Transactional标注可以,在配置文件里指定也可以。
因为数据源已经在Spring配置文件中指定了。
SqlMapConfig.xml就相当简单了。
首先,数据源照旧,还是用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>