java里,怎么写事务控制

我一个方法里,执行了文件操作、数据库操作等....如果用Connection手动提交的话,就只对数据库操作生效,对文件操作不管用我想对这个方法进行事务控制,要怎么写?(没... 我一个方法里,执行了文件操作、数据库操作等....
如果用Connection手动提交的话,就只对数据库操作生效,对文件操作不管用
我想对这个方法进行事务控制,要怎么写?
(没使用spring、hibernate)
我是这个方法里,包含"文件操作、数据库操作",两种操作,要事务控制,就控制整个方法,两种操作都要回滚,就是不知道怎么实现
------------------
2楼说的是针对数据库操作,还有文件操作呢?
展开
 我来答
千锋教育
2015-12-20 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
Java中为了控制事务的一致性,会使用插入回滚点、callback方法,保证数据不被篡改,示例如下:
public String delete(String id) {
String ID = id;
 db = new getConnection();
 Connection con = db.getConnection();
 try {
con.setAutoCommit(false);
db.executeUpdate("delete from helloworld where ID=" + ID); //更新操作1
  db.executeUpdate("delete from helloworld _book where ID=" + ID); //更新操作2
  db.executeUpdate("delete from helloworld_user where ID=" + ID); //更新操作3
  con.commit();//提交JDBC事务
  con.setAutoCommit(true);
db.close();
return “success”;
 }
 catch (Exception e) {
  con.rollBack();//回滚JDBC事务
  e.printStackTrace();
db.close();
return “fail”;
  }
}
匿名用户
2010-03-05
展开全部
简单的~在连接了数据库之后,将自动commit的参数改为false,conn.setAutoCommit( false );
并在执行了sql语句之后调用conn.commit();
就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lgyt34
2010-03-05 · TA获得超过215个赞
知道小有建树答主
回答量:232
采纳率:0%
帮助的人:200万
展开全部
lz可能想在上传,修改,删除文件时,同时操作数据库记录吧?
更正一下,只有对数据库的一组操作才叫事物,操作文件是业务逻辑,不能写在一起。你可以先完成对文件的操作,再根据文件的操作情况(操作成功与否)操作数据库,一个在业务层,一个在持久层。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
LHLBT3GOOD
推荐于2017-09-18 · TA获得超过546个赞
知道小有建树答主
回答量:401
采纳率:0%
帮助的人:537万
展开全部
对文件操作的事物控制?

那就得从新写了~

其实就是写个指令的缓冲

比如Hibernate的Session,就是把SQL语句(或者HQL)先存起来,然后commit的时候再一次执行(当然其中没那么简单,也使用了cglib来同步实体对象)

你写的话,其实也是写个缓冲而且,调用的方法表面是
delete()(这个方法需要你自己实现的,而不是File类的delete())
其实内部只是记下个指令而已

这仅仅是思路,具体还要看你的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式