请教:JDBC的事务问题

thriller818 2008-09-07 09:35:10
以下代码主要是表达下意思

Connectioin conn = DriverManager.getConnection();
conn.setAutoCommit(false);
try
{
conn.createStatement.executeUpdate("insert into table_name values('a','b')); //位置1
conn.createStatement.executeUpdate("insert into table_name values('a','b')); //位置2
conn.commit();
} catch (SQLException e)
{
conn.rollback();
}

当执行到位置1的时候就定在那了,不在往下执行了,我想是因为没提交,不能执行下一条语句
可是如果提交了,在位置2发生了异常,我还能回滚么。
所以请教大虾给予解释一下
...全文
127 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
CHR_WHY 2008-09-09
  • 打赏
  • 举报
回复
事务必须是一次完成的,只要在try中发生了异常,无论是在哪里,都会在catch中回滚!
zhujiayun 2008-09-07
  • 打赏
  • 举报
回复
因为你设定了conn.setAutoCommit(false);而当执行conn.commit()这个才能够提交,所以当在2发生错误时是可以回滚的

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧