JDBC中的事务 |学习笔记

简介: 快速学习JDBC中的事务

开发者学堂课程【JDBC数据库开发进阶:JDBC中的事务 】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/32


JDBC中的事务


处理事务:

jdbc中处理事务,都是通过connection完成,都是自动提交,手动提交就是开启事务。

 

自动提交:

既执行一条可提交,不用我们提交,事务往往是把多个事务弄在一起,往往是try开始时提交事务,结束时提交事务,如未发生错误,则执行事务,如发生错误,在commit时发生异常,它本身不可能异常,如异常则可能是失联,这时回滚即可。

 

如未提交事务,回滚事务,这时事务自动回滚 以失败告终,格式极其重要 接下来就是写代码。

 

 数据库:

首先我们写项目的时候,要导包,mysql驱动导进来,现在的项目,需要将准备工作做好,如以前的小工具都需提前弄好,演示转账,得有一个daodao里面写一个updatebalanca,告诉金额,指定用户的余额,用runtime作一个转换,得到指定工具。

 

第二件事要给出sql模板,创建pstmt,所有参数都用问号代替,,再下一步,对参数进行赋值,问号的顺序需要明白,最后执行,用executeupdate。转账方法,fromto

 

格式:

开启事务…提交事务,回滚事务,对事务的操作必须使用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 转账方法,从fromto

创建dao对象,在原先基础上加上相应金额或者减去相应金额,

 

所有对连接的管理都转移到业务上了。

 

 

 

 

 

相关文章
|
SQL Java 数据库连接
联表查询 && 索引 && 事务 && JDBC使用 &&CPU工作原理 && 线程概念 && Thread类的用法
联表查询 && 索引 && 事务 && JDBC使用 &&CPU工作原理 && 线程概念 && Thread类的用法
159 0
|
3月前
|
SQL druid Java
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
55 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
|
3月前
|
SQL Java 关系型数据库
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
121 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
|
3月前
|
SQL 关系型数据库 MySQL
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)
38 6
|
3月前
|
存储 关系型数据库 MySQL
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)(上)
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)
49 4
|
3月前
|
SQL 关系型数据库 MySQL
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)(中)
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)
31 3
|
XML Java 数据库连接
java202304java学习笔记第六十五天-ssm-声明式控制-基于xml的声明式配置-原始jdbc操作1
java202304java学习笔记第六十五天-ssm-声明式控制-基于xml的声明式配置-原始jdbc操作1
64 0
|
SQL druid Java
[Java]JDBC学习笔记(尚硅谷康师傅JDBC)(四)
[Java]JDBC学习笔记(尚硅谷康师傅JDBC)(四)
|
6月前
|
Java 关系型数据库 MySQL
JDBC学习笔记
JDBC学习笔记