请教:JDBC的事务问题

08-09-07 thriller818
以下代码主要是表达下意思

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();
}
<p>

当执行到位置1的时候就定在那了,不在往下执行了,我想是因为没提交,不能执行下一条语句

可是如果提交了,在位置2发生了异常,我还能回滚么。

所以请教大虾给予解释一下

ITfuture
2008-09-08 08:46
"insert into table_name values('a','b') 这里貌似少了一个"

可是如果提交了,在位置2发生了异常,我还能回滚么

可以.

你设定的connection为手动提交了啊~~

freebox
2008-09-08 18:40
在1、2间加入语句throw new Exception();试一下就知道了

vodomore
2008-09-18 07:25
insert into table_name (column_name1, column_name2...) values(value1, value2...)

猜你喜欢