JDBC之事务操作

2019-03-29  本文已影响0人  伍陆柒_

Demo1:

/**
 * 向emp表中插入一条记录
 * empno    ename   deptno
 * 9527     华安      20
 * @author Administrator
 */
public class JDBCDemo1 {
    public static void main(String[] args) {
        Connection conn = null;
        PreparedStatement ps = null;
        try {
            conn = DBUtils.getInstance().getConnection();
            // 1.控制事务 -- 取消自动提交
            conn.setAutoCommit(false);
            ps = conn.prepareStatement("insert into emp(empno,ename,deptno) \r\n" + 
                    "values (?,?,?)");
            // 占位符赋值
            ps.setInt(1, 9529);
            ps.setString(2, "华安1111");
            ps.setInt(3, 60);
            // 2.增删改调用executeUpdate(),返回一个整数,代表影响的记录个数
            int count = ps.executeUpdate();
            // 3.手动提交commit()
            conn.commit();
            System.out.println("插入了"+count+"条记录");
        } catch (Exception e) {
            try {
                conn.rollback();
            } catch (SQLException e1) {
                e1.printStackTrace();
            }
            e.printStackTrace();
        }  finally {
            if(conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(ps != null) {
                try {
                    ps.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

Demo2:

/**
 * 将emp表20部门的员工,工资涨200
 * @author Administrator
 *
 */
public class JDBCDemo2 {

    public static void main(String[] args) {
        Connection conn = null;
        PreparedStatement ps = null;
        try {
            conn = DBUtils.getInstance().getConnection();
            // 1.控制事务 -- 取消自动提交
            conn.setAutoCommit(false);
            ps = conn.prepareStatement("update emp set sal = sal + ? where deptno = ?");
            // 占位符赋值
            ps.setDouble(1, 200);
            ps.setInt(2, 20);
            // 2.增删改调用executeUpdate(),返回一个整数,代表影响的记录个数
            int count = ps.executeUpdate();
            // 3.手动提交commit()
            conn.commit();
            System.out.println("修改了"+count+"条记录");
        } catch (Exception e) {
            try {
                conn.rollback();
            } catch (SQLException e1) {
                e1.printStackTrace();
            }
            e.printStackTrace();
        }  finally {
            if(conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(ps != null) {
                try {
                    ps.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }

}
上一篇 下一篇

猜你喜欢

热点阅读