zoukankan      html  css  js  c++  java
  • Spring事务处理

    主要是两个方面:

      一是开始事务

     conn.setAutoCommit(false);默认是true

      二是提交事务

      conn.commit();

    一、创建一个类

      连接数据库的方法封装在Util包中,获取Connection连接。该类的功能是通过id修改表t_emp 中对应id的acount的值。

      使用Connection的preparestatement方法。

    public class AcountDao {
        public void update(Connection conn,Integer id,Integer count) {    
            String sql="update t_emp set acount=acount+? where id=?";
            PreparedStatement ps=null;
            try {
                ps = conn.prepareStatement(sql);
                ps.setInt(1, count);
                ps.setInt(2, id);
                ps.executeUpdate();    
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }            
        }
    }

    二、创建一个测试类JUnit Test Case

    private AcountDao acountdao=new AcountDao();
        @Test
        public void testUpdate() {
            Connection conn=null;//一个connection对象
            conn=Util.getConn();
            try {
    //            开启事务,需要手动提交
                conn.setAutoCommit(false);
    //      孙悟空向猪八戒转账100元 acountdao.update(conn,
    1, -100);//一个connection对象 int aa=10/0;
    //      猪八戒收到孙悟空的转账的100元 acountdao.update(conn,
    2, 100);//一个connection对象 // 提交事务 conn.commit(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }

    这里需要注意:我们前后

     acountdao.update();方法中都有Connection,加上程序刚开始创建的Connection对象,总共是有3个Connection对象。我们要保持着3个
    Connection对象是同一个Connection对象。

    当孙悟空转账后出现了错误,提交的事务的方法就可以回滚,即将执行的操作向回翻滚,回滚到开始事务的时刻,就相当于从来没有执行过。

      

  • 相关阅读:
    Python实现TCP服务端的并发
    python程序中的线程操作
    jmeter命令行执行脚本_动态参数设置
    App客户端性能测试点总结
    App功能测试点总结
    jmeter中生成UUID作为唯一标识符
    Python Unittest进行接口测试的简单示例
    jmeter接口测试中的用例数据分离
    博客园看板娘的简单添加
    (转)后端服务性能压测实践
  • 原文地址:https://www.cnblogs.com/xuesheng/p/7455183.html
Copyright © 2011-2022 走看看