您的位置:首页 > 编程语言 > Java开发

JAVA JDBC事务提交的疑问

2011-09-17 16:36 330 查看
http://zhidao.baidu.com/question/143168603.html

百度首页 | 百度知道 | 登录





新闻

网页

贴吧

知道

MP3

图片

视频

百科

文库

帮助|设置






百度知道 > 电脑/网络 > 程序设计 > JAVA相关


JAVA
JDBC事务提交的疑问。

浏览次数:1372次悬赏分:0 | 解决时间:2010-4-4
00:16 | 提问者:laowai250

一个简单的事务提交案例
try{
... conn,ps,rs等对象省略
conn.setAutoCommit();
... 执行一次查询
rs = ps.execuQuery();
if(rs.next){
...执行更新
conn.commit();
}
}
catch(SQLException e){
conn.rollback();
}

当上面程序开始执行时,启动事务 conn.setAutoCommit();
如果我查询的时候 没有查询到结果  就是执行不到commit()方法
这个时候数据库会锁定吗,或者 因为没有执行commit提交方法,
自动默认是回滚事务?


最佳答案

>>启动事务 conn.setAutoCommit();
这个不是启动事务,而是设置事务是否自动提交,默认是自动提交,如果要手动控的话,写成conn.setAutoCommit(false);

if(rs.next){
>>>  ...执行更新
conn.commit();
}

这个也不对,RS不可能执更新操作。只能是查询。

如果你进行了锁表操作,那么如果没有commit()或rollbak()方法,是不会进行解锁操作的。
下面给你些代码段以做参考。

public class SQLCondition{
public ResultSet execuQuery(Connection conn) throws SQLException{
检索操作.......
}
public int execuUpdate(Connection conn) throws SQLException{
更新操作.......
}
}

public class DBAccess(){
public void execute(){
SQLCondition condition = .....;
Connection conn = .....;
try{
conn.setAutoCommit(false); //设成非自动提交
condition.execuQuery(conn);
condition.execuUpdate(conn);
//如果操作成功会走到这一步,进行提交,可以解锁
conn.commit();
}catch(SQLException){
//出现任何的SQL异常都可以捕捉到,进行事务回滚,也可以解锁。
conn.rollbak();
}
}
}

>>自动默认是回滚事务?
默认的话,是执行一条就进行提交,如果错了会回滚。


2

回答时间:2010-3-22 11:43 | 我来评论





向TA求助

回答者: dingjunfen | 八级采纳率:30%

擅长领域: JAVA相关 电脑/网络 电子数码 体育/运动 烦恼

参加的活动: 暂时没有参加的活动

相关内容

2010-3-31java
jdbc 怎样查看最终提交的sql语句

2009-7-20关于jdbc中数据库事务的提交和回滚 1

2011-5-23事务的提交和回滚是什么意思
Java 6

2010-10-29JSP+java模式的WEB应用,如果浏览器提交更新请求后,突然关闭,后台事务...

2011-7-8JAVA
JDBC利用 DB LINK实现数据备份清楚功能

更多关于jdbc
提交的问题>>
查看同主题问题: java
jdbc 事务 提交 疑问

等待您来回答

0回答近期长春民生银行招聘,有谁接到通知了?结果如何?是不是成功与否都...

0回答10java正则表达式"/\*!(.*)|!\*/"啥意思

0回答js里的三元表达式问题
?前面可以是数这类形吗 看下面的这断代码

0回答永辉Vss系统

0回答汽车销售
哪一种好做一点

0回答20我是java程序员,怎么去学android应用程序开发,详细详细。cell

1回答20逻辑表达式证明德摩根定律,并列出真值表

1回答50求解vss2005安装时遇到的问题

更多等待您来回答的问题>>

其他回答 共1条

事务提交应该只是涉及到内容修改才会有。而且不同的数据库事务处理默认机制不一样。mysql默认是自动提交的,而oracle却需要人工提交后才生效。而且你设置自动提交错了。


回答者: thinkpack | 九级 | 2010-3-22
11:36

分享到:

推广链接长春北大青鸟java高级编程

长春北大青鸟java高级编程,依托北大雄厚教育资源,开设软件工程师课程涵盖软件编程涵.. www.jl-accp.com

java编程培训班哪家好?吉林巨和18686686748

java编程培训班--吉林巨和学习六个月=到北京工作+月薪三千起+三险一金,java编程培训.. www.juheit.com

java游戏开发
尚观全国9大实训基地,年薪8w起

java游戏开发
国内唯一涵盖java开发应用层,中间件,内核,驱动层全覆盖人手一机写代码.. www.UpLooKing.com

用户名:

密码:

记住我的登录状态

登 录 忘记密码

注册百度账号,遨游知识海洋

长春北大青鸟java高级编程

长春北大青鸟java高级编程,依托北大雄厚教育资源,开设软件工程师课程涵盖软件编程涵..

www.jl-accp.com

java编程培训班哪家好?吉林..

java编程培训班--吉林巨和学习六个月=到北京工作+月薪三千起+三险一金,java编程培训..

www.juheit.com

java游戏开发
尚观全国9大实..

java游戏开发
国内唯一涵盖java开发应用层,中间件,内核,驱动层全覆盖人手一机写代码..

www.UpLooKing.com

JAVA软件哪里好?推荐清华大..

JAVA软件,清华大学本校培训,近百个实训项目,清华主讲教授课,毕业颁发《清华大学专业..

training.tsinghua.edu.cn/01062783406

男人阳痿,早泄,肾虚
用种玛!

用纯正美国进口
美国种玛 彻底解决男人阳痿,早泄,短小,射精无力等,床上难言之隐!

www.MeiGuoZhongMa.com.5m5x.com

来百度推广JAVA相关









©2011 Baidu 使用百度前必读 知道协议
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: