spring 事务操作 编程方式

来源:互联网 发布:in软件 编辑:程序博客网 时间:2024/06/02 00:49

传统的jdbc 流程
1.加载驱动程序
2.获取一个链接
3.预编译一个陈述
4.开启一个事务
5.操作
6.关闭陈述
7.关闭链接

<?xml version="1.0" encoding="UTF-8"?><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.xsd">    <bean id="dateSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">        <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>        <property name="url" value="jdbc:mysql://localhost:3306/kaoqin"></property>        <property name="username" value="root"></property>        <property name="password" value="1234"></property>    </bean>    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">        <property name="dataSource" ref="dateSource"></property>    </bean>    <bean id="userDao" class="com.sanmao.dao.UserDao">        <property name="dataSource" ref="dateSource"></property>        <property name="platformTransactionManager" ref="transactionManager"></property>    </bean>    </beans>
public class UserDao {    private DataSource dataSource;//数据源    private PlatformTransactionManager platformTransactionManager;//事物管理    public void setDataSource(DataSource dataSource){        this.dataSource=dataSource;    }    public void setPlatformTransactionManager(PlatformTransactionManager platformTransactionManager) {        this.platformTransactionManager = platformTransactionManager;    }    public void add(){        //拿到一个具体的事物        TransactionTemplate transactionTemplate=new TransactionTemplate(platformTransactionManager);        //在事物中运行        transactionTemplate.execute(new TransactionCallbackWithoutResult() {            @Override            protected void doInTransactionWithoutResult(TransactionStatus transactionStatus) {                //对数据库进行操作                //陈述                JdbcTemplate jdbcTemplate=new JdbcTemplate(dataSource);                jdbcTemplate.update("insert into  sanmao (name,pass)  VALUES ('1','1')");            }        });    }}
public class test {    public static void main(String[] args) {        ApplicationContext applicationContext=new ClassPathXmlApplicationContext("spring-config.xml");        UserDao userDao=(UserDao)applicationContext.getBean("userDao");        userDao.add();    }}
0 0
原创粉丝点击