此案例为加深对数据库操作时,对事务的理解,当转钱过程中由于某些原因发生错误时,会出现A的钱变少而B
无改变的状况,或是其他不正确的情况,注意正确的是A转给B10元,A-10 B+10,这个时候就需要使用Connection
的三个方法
首先,将自动提交设置为false,这里的自动提交指的是对sql语句的提交编译
通常状况下,默认是自动提交的,当调用PreparedStatement对象的execute方法时,就会自动提交
conn.setAutoCommit(false);
然后,在设置了false以后,就需要手动提交
conn.commit();
最后,当发生错误时,使用conn.rollback();可以撤销对数据库已做的改变,恢复原状
该方法通常写在catch中,且方法本身也需要try-catch
案例代码:
共四个类,其中DBUtil工具类获得Connection的对象
两个javabean模式的实体类,这里不贴代码了
最后的测试类,核心代码,方法包装时和选课系统虽然有不同,但也有相似之处
博主想过把jdbc封装成一个方法,但是有的sql语句需要设定?值,有的不需要,且设定的?值不确定是几个
还没有找到合适的处理方法
package userMoveM