事物笔记

什么是事务:
一件事情有N个组成单元,执行之后要么同时成功,要么同时失败。
MySQL是一条默认的事务,一条sql语句就是一条事务。
------------------------------------------------------------
MySQL事务:
1、开启一个事务:start transaction
2、事务提交:commit 代表从开启事务到事务提交中间的所有sql语句都认为是有效的。
3、事务回滚:rollback 代表从开启事务到事务回滚之间的所有sql语句都认为是无效的。

当开启事务执行sql语句之后,在数据库中是可以查看到的,但这只是以日志的方式存在,并没有真正的存在MySQL的磁盘上,这时执行事务回滚之后,数据是没有的。

------------------------------------------------------------
JDBC实务操作:
默认是自动事务:
每执行一次excuteUpdate方法,就代表事务自动提交。

把自动提交的代码设置成false,意思是不自动提交,改为手动提交:
conn.setAutoCommit(false);
手动开启事务之后获得执行平台:
Statement stmt = conn.createStatement();

通过jdbc的API手动操作:
1、开启事务:conn.setAutoCommit(false);
2、提交事务:conn.commit();
3、事务回滚:conn.rollback();

注意:执行sql语句的connection与开启事务的connection必须是同一个,才能对事务进行控制。


------------------------------------------------------------
DBUtils事务操作:

DBUtils分为有参构造和无参构造两种。

有参构造:
QueryRunner runner = new QueryRunner(DataSourceUtils.getdataSource());
里面的参数就是连接池,相当于连接到了数据库,如果没有参数的话,就要自己设置Connection连接数据库。

无参构造:
QueryRunner runner = new QueryRunner();
自己设置连接:
Connection conn = DataSourceUtils.getConnection();

转载于:https://www.cnblogs.com/tidhy/p/6680674.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值