java基础类库学习 java.sql(6)Connection类对事务的支持

事务的支持由connection类提供

Connection默认事务为自动提交,即sql语句一旦执行,便会立即提交到数据库,永久生效,(我以前开发就用的这个,但是不安全)

实际开发中我们根据情况选择事务的自动提交或者是事务的显示提交

(1)若一次只执行一条sql语句,则让事务自动提交,程序不做任何处理,便可实现事务的自动提交

(2)若一次处理多条sql语句,且相互关联,合为事务,则让事务显示提交,程序需要做如下处理

Connection提供的方法conn.setAutoCommit(false);//设置事务的显示提交,不自动提交,更安全

开启事务后,执行多条sql语句,但是这些sql所作的修改不会生效,因为事务还没有提交

Connection提供的方法conn.commit();//显示提交事务,使得修改生效

Connection提供的方法conn.rollback();//回滚事务,实际开发写,因为只要有sq错误,系统捕捉异常,在catch中实现回滚

有时也有可能需要设置中间点

Connection提供的setSavepoint(String name);//可以创建一个中间点的对象

Connection提供的rollback(Savepoint savepoint);//可以回滚到指定的中间点

java8有一个新特性:批量更新

允许多条sql语句(只能为更新操作)被作为一批操作同时收集,并同时提交

使用步骤:

conn.setAutoCommit(false);

Statement st=conn.createStatement();

st.addBatch(sql1);

st.addBatch(sql2);

st.addBatch(sql3);

st.executeLargeBatch();

conn.commit();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值