显式事务控制的隐式提交

如程序:

Connection conn = getConnection();

conn.setAutoCommit(false);

/*

**DB业务1->select

**DB业务2->update

*/

//conn.commit();此处不进行事务提交

conn.close();

 

在没有进行事务提交的基础上,在db发现此次的数据操作居然是成功的。

 

解释:对于应用服务器,例如weblogic,在JDK的基础上封装了Connection对象,形成了自己的规范,

weblogic封装了几个类型的连接对象,在调用该连接对象close前,先检查是否有未提交事务,如果有,则默认提交一次

 

呵呵,悬吧。

不知道对于tomcat、jboss等应用服务器,是否也如此呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过以下方式验证sqlcmd的自动提交显式提交隐式提交的设置方式和效果: 1. 验证自动提交 在sqlcmd中,默认情况下是开启自动提交的,即每次执行完一条SQL语句后自动提交事务。可以通过以下步骤验证自动提交: - 打开sqlcmd,连接到数据库; - 输入一条INSERT语句,例如:INSERT INTO test_table VALUES (1, 'test'); - 执行查询,例如:SELECT * FROM test_table; - 如果新插入的数据出现在查询结果中,则说明自动提交已生效。 2. 验证显式提交 显式提交是指用户通过执行COMMIT语句手动提交事务。可以通过以下步骤验证显式提交: - 打开sqlcmd,连接到数据库; - 输入一条BEGIN TRANSACTION语句,开始一个新的事务; - 输入一条INSERT语句,例如:INSERT INTO test_table VALUES (2, 'test2'); - 执行查询,例如:SELECT * FROM test_table; - 如果新插入的数据没有出现在查询结果中,则说明事务还未提交; - 输入COMMIT语句,提交事务; - 再次执行查询,如果新插入的数据出现在查询结果中,则说明显式提交已生效。 3. 验证隐式提交 隐式提交是指当SQL语句执行完成后自动提交事务,无需显式执行COMMIT语句。可以通过以下步骤验证隐式提交: - 打开sqlcmd,连接到数据库; - 输入一条BEGIN TRANSACTION语句,开始一个新的事务; - 输入一条INSERT语句,例如:INSERT INTO test_table VALUES (3, 'test3'); - 执行QUIT命令,退出sqlcmd; - 再次打开sqlcmd,连接到同一个数据库; - 执行查询,例如:SELECT * FROM test_table; - 如果新插入的数据出现在查询结果中,则说明隐式提交已生效。 通过以上步骤可以验证sqlcmd的自动提交显式提交隐式提交的设置方式和效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值