zoukankan      html  css  js  c++  java
  • JDBC 事务(二)回滚到保存点

    public class SavePointTest {

        /**
         * @param args
         * @throws SQLException
         */
        public static void main(String[] args) throws SQLException {
            test();
        }

        static void test() throws SQLException {
            Connection conn = null;
            Statement st = null;
            ResultSet rs = null;
            Savepoint sp = null;
            try {
                conn = JdbcUtils.getConnection();
                conn.setAutoCommit(false);           
                st = conn.createStatement();
                String sql = "update user set money=money-10 where id=1";
                st.executeUpdate(sql);
                sp = conn.setSavepoint();

                sql = "update user set money=money-10 where id=3";
                st.executeUpdate(sql);

                sql = "select money from user where id=2";
                rs = st.executeQuery(sql);
                float money = 0.0f;
                if (rs.next()) {
                    money = rs.getFloat("money");
                }
                if (money > 300)
                    throw new RuntimeException("已经超过最大值!");

                sql = "update user set money=money+10 where id=2";
                st.executeUpdate(sql);

                conn.commit();
            } catch (RuntimeException e) {
                if (conn != null && sp != null) {
                    conn.rollback(sp);
                    conn.commit();
                }
                throw e;
            } catch (SQLException e) {
                if (conn != null)
                    conn.rollback();
                throw e;
            } finally {
                JdbcUtils.free(rs, st, conn);
            }
        }
    }

  • 相关阅读:
    Solr7.7安装,配置中文分词 IKAnalyzer分词
    Solr7.7安装,链接数据库并导入数据,初级导入数据
    Solr7.7安装,过浏览器可以看到Solr界面,进行可视化操作
    Solr7.7安装,JDK安装
    Jquery 全局错误处理
    各种问题
    Elmah 数据库脚本
    LINQ&EF任我行(二)--LinQ to Object
    css3 animatehue属性
    Lync二次开发关于Lync启动退出问题
  • 原文地址:https://www.cnblogs.com/flying607/p/3461224.html
Copyright © 2011-2022 走看看