开发者学堂课程【JDBC数据库开发进阶:JDBC中的事务 】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/32
JDBC中的事务
处理事务:
在jdbc中处理事务,都是通过connection完成,都是自动提交,手动提交就是开启事务。
自动提交:
既执行一条可提交,不用我们提交,事务往往是把多个事务弄在一起,往往是try开始时提交事务,结束时提交事务,如未发生错误,则执行事务,如发生错误,在commit时发生异常,它本身不可能异常,如异常则可能是失联,这时回滚即可。
如未提交事务,回滚事务,这时事务自动回滚 以失败告终,格式极其重要 接下来就是写代码。
数据库:
首先我们写项目的时候,要导包,mysql驱动导进来,现在的项目,需要将准备工作做好,如以前的小工具都需提前弄好,演示转账,得有一个dao,dao里面写一个updatebalanca,告诉金额,指定用户的余额,用runtime作一个转换,得到指定工具。
第二件事要给出sql模板,创建pstmt,所有参数都用问号代替,,再下一步,对参数进行赋值,问号的顺序需要明白,最后执行,用executeupdate。转账方法,from到to,
格式:
开启事务…提交事务,回滚事务,对事务的操作必须使用connection对象。要保证在一个事务内,必须前后使用一个connection对象,如是不同的connection,则不是一个对象,创建事务对象,在开启事务和提交事务的中间,给from减去相应金额,给to加上相应金额在这中间抛一个异常,这两句使用的connection不能保证都是同一个。
所有对connection的操作都在service层进行的处理,明天要去处理这一问题,把所有对connection的操作隐藏起来,需要自定义的工具隐藏起来。
boolean.:
设置是否为自动提交事务,如果true(默认值是true)表示自动提交,也就是每条执行的SQL语句都是一个单独的事务,如果设置false,那么就相当于开启了事务了
con.setautocommit(false):
表示开启事务!给from减去相应金额 给to减去相应金额
commit():
提交结束事务;con.commit();表示提交事务。
rollback():
回滚结束事务。
con.rollback();
表示回滚事务。
对事务的操作必须使用connection对象,同一事务中的所有操作,都是使用同一个connection对象。
如果N次使用的都是不同的connection对象,那么就不是同一操作。
public void
1. 得到连接对象
2. 给出sq1模板,创建pstmt
3. 对参数进行赋值
4. 执行之
演示所有对connection的操作都在service层进行的处理,把所有对connection的操作隐藏起来,这需要使用自定义的小工具,所有对事务的控制都转移到public class 修改指定用户的余额,param name ,param balance。
列入转账,要public class 转账方法,从from到to。
创建dao对象,在原先基础上加上相应金额或者减去相应金额,
所有对连接的管理都转移到业务上了。