spring入门实例-DAO,事务
实例使用代理模式,使用DAO,并且添加事务功能
配置文件:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean name="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"> <value>oracle.jdbc.driver.OracleDriver</value> </property> <property name="url"> <value>jdbc:oracle:thin:@192.168.32.227:1521:orcl</value> </property> <property name="password"> <value>lpromis</value> </property> <property name="username"> <value>lpromis</value> </property> </bean> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource"> <ref bean="dataSource"></ref> </property> </bean> <bean id="userDAO" class="com.myspring.bussiness.declare.DataSourceDAO"> <property name="dataSource"> <ref bean="dataSource"></ref> </property> </bean> <bean id="userDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager"> <ref bean="transactionManager"/> </property> <property name="target"> <ref bean="userDAO"/> </property> <property name="transactionAttributes"> <props> <prop key="insert*">PROPAGATION_REQUIRED</prop> </props> </property> </bean> </beans>
使用 org.springframework.transaction.interceptor.TransactionProxyFactoryBean实现代理事务,事务处理类
transactionManager,DAO的bean是userDAO,代理事务属性设置为insert操作,
其中PROPAGATION_REQUIRED,是事务操作属性,还有许多,有兴趣可以自己看看api。
bean的实现:
/** * use declarative transaction * @author logichina * */ public class DataSourceDAO { private DataSource dataSource; public void setDataSource(DataSource dataSource) { this.dataSource = dataSource; this.jdbcTemplate = new JdbcTemplate(dataSource); } private JdbcTemplate jdbcTemplate; public void insertCustomer() { jdbcTemplate.update("insert into t_lpromis_yxgl_khxx(id,khqc) values('000023','testname4')"); jdbcTemplate.update("insert into t_lpromis_yxgl_khxx(id,khqc) values('000024','testname5')"); jdbcTemplate.update("insert into t_lpromis_yxgl_khxx(id,khqc) values('000023','testname6')"); } public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("com/myspring/bussiness/declare/datasourceDAO.xml"); DataSourceDAO bean = (DataSourceDAO) context.getBean("userDAOProxy"); bean.insertCustomer(); } }