一次操作一个表还比较简单,但是如果要一次操作多个表就比较麻烦了。
比如说要执行一次更新操作:在update A表的同时,还要insert B表。如果insert B表失败了,那么A表也不应该被更新。
我记得这应该是个事务操作吧,有一个表操作失败了就执行rollback,都成功了才commit提交。
现在的问题就是在dao里面该怎么写事务操作的代码呢?
另外如果有多个session同时访问同一个表,比如说用户a正在查询或更新某条数据,用户b在这同时又准备删除或更新这条数据,怎么进行锁表操作呢(即要a操作完毕后b才能操作)?
求源码。。。。求指点。。。谢谢!
补充一下哈:不要涉及到hibernate和spring的知识,我现在只是单纯的使用struts。
ls的代码有问题的,还需要设置setAutoCommited(false);还有connection.commit();
[code="java"]
try {
Class.forName(this.driver);
connection = DriverManager.getConnection(connectionUrl, dbUser, dbPass);
statement = connection.createStatement();
for (String sql : sqlList) {
statement.executeUpdate(sql);
}
} catch (SQLException e) {
if (connection != null) {
connection.rollback();
}
throw e;
} finally {
if (statement != null) {
statement.close();
}
if (connection != null && connection.isClosed() == false) {
connection.close();
}
}
[/code]
多用户的情况数据库自己会处理,代码里不用去特别处理了