spring Spring配置管理JDBCJava.net
程序员文章站
2022-06-02 11:05:09
...
持久层封装-JDBC
为了实现数据操作的原子性,我们需要在程序中引入事务逻辑,在JdbcTemplate中引入
事务机制,在Spring中有两种方式:
1. 代码控制的事务管理
2. 参数化配置的事务管理
下面就这两种方式进行介绍。
代码控制的事务管理
首先,进行以下配置,假设配置文件为(Application-Context.xml):
事务代理
为了实现数据操作的原子性,我们需要在程序中引入事务逻辑,在JdbcTemplate中引入
事务机制,在Spring中有两种方式:
1. 代码控制的事务管理
2. 参数化配置的事务管理
下面就这两种方式进行介绍。
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);; jdbcTemplate.update("UPDATE user SET age = 10 WHERE id = 'erica'");;
代码控制的事务管理
首先,进行以下配置,假设配置文件为(Application-Context.xml):
<beans> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName"> <value>net.sourceforge.jtds.jdbc.Driver</value> </property> <property name="url"> <value>jdbc:jtds:sqlserver://127.0.0.1:1433/Sample</value> </property> <property name="username"> <value>test</value> </property> <property name="password"> <value>changeit</value> </property> </bean> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransac tionManager"> <property name="dataSource"> <ref local="dataSource" /> </property> </bean> <bean id="userDAO" class="net.xiaxin.dao.UserDAO"> <property name="dataSource"> <ref local="dataSource" /> </property> <property name="transactionManager"> <ref local="transactionManager" /> </property> </bean> </beans>
事务代理
<bean id="UserDAOProxy" class="org.springframework.transaction.interceptor.Transac tionProxyFactoryBean"> <property name="transactionManager"> <ref bean="transactionManager" /> </property> <property name="target"> <ref local="userDAO" /> </property> <property name="transactionAttributes"> <props> <prop key="insert*">PROPAGATION_REQUIRED</prop> <prop key="*">PROPAGATION_REQUIRED,readOnly</prop> </props> </property> </bean> <bean id="userDAO" class="net.xiaxin.dao.UserDAO"> <property name="dataSource"> <ref local="dataSource" /> </property></bean>