当前位置: 技术问答>java相关
事务是否只于数据的更新有关,而与查询无关呢?
来源: 互联网 发布时间:2017-04-20
本文导语: 例如: Userinfo ui=new Userinfo(); Send sd=new Send(); ......... Transaction.begin(); ui.queryByCondition(...); sd.setUserid(ui.getUserid()); sd.Insert(); ui.update(); Transaction.commit(); 如果ui.queryByCondition(...);查找失败,sd.Insert();ui.update();还会执行吗...
例如:
Userinfo ui=new Userinfo();
Send sd=new Send();
.........
Transaction.begin();
ui.queryByCondition(...);
sd.setUserid(ui.getUserid());
sd.Insert();
ui.update();
Transaction.commit();
如果ui.queryByCondition(...);查找失败,sd.Insert();ui.update();还会执行吗?
若ui.queryByCondition(...);查找成功,sd.Insert();执行失败,ui.update();还会执行吗?
我没用过事务,请给举个例子好吗?
Userinfo ui=new Userinfo();
Send sd=new Send();
.........
Transaction.begin();
ui.queryByCondition(...);
sd.setUserid(ui.getUserid());
sd.Insert();
ui.update();
Transaction.commit();
如果ui.queryByCondition(...);查找失败,sd.Insert();ui.update();还会执行吗?
若ui.queryByCondition(...);查找成功,sd.Insert();执行失败,ui.update();还会执行吗?
我没用过事务,请给举个例子好吗?
|
都会啊,因为流水形式执行下去嘛,除非你做了异常处理。
为了处理一个以上的更新数据库的操作,我们经常会遇到要完成一个事情,但要同时两次以上更新数据库的操作的,如果一个更新失败了,那么就希望全部撤销不更新,那么我们就要用到 commit 和 rollback
例如我想先update成功后delete一条纪录,如果delete不成功那么就想刚才update的操作不做了,那么怎么办呢
try{
PreparedStatement state_sql = con.prepareStatement("update table set ....");
ui.execute();
PreparedStatement state_sql = con.prepareStatement("delete from..");
ui.execute();
}catch (SQLException e) {
con.rollback;
}
注意的事如果用了事务那么就要记住做影响数据库数据的操作后面加上commit、rollback了,要不然就会锁表之类的东西发生。select 那些不影响数据的就不用commit、rollback
为了处理一个以上的更新数据库的操作,我们经常会遇到要完成一个事情,但要同时两次以上更新数据库的操作的,如果一个更新失败了,那么就希望全部撤销不更新,那么我们就要用到 commit 和 rollback
例如我想先update成功后delete一条纪录,如果delete不成功那么就想刚才update的操作不做了,那么怎么办呢
try{
PreparedStatement state_sql = con.prepareStatement("update table set ....");
ui.execute();
PreparedStatement state_sql = con.prepareStatement("delete from..");
ui.execute();
}catch (SQLException e) {
con.rollback;
}
注意的事如果用了事务那么就要记住做影响数据库数据的操作后面加上commit、rollback了,要不然就会锁表之类的东西发生。select 那些不影响数据的就不用commit、rollback
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。