java中怎么设置多条语句若执行都执行若不执行都不执行

小姜哥
博客专家认证
2010-11-08 10:20:08
我有这么一个需求,做文件上传同时在数据库中记录文件的路径,所以文件上传和更新数据库要如果执行都执行,反之都不执行,java中能怎么实现
...全文
288 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ousyuryu 2010-11-09
  • 打赏
  • 举报
回复
这个真的要看楼主需要什么了。
一般是批量上传中有一项失败就都回滚
按照楼主所说的好像是只上传一个文件

做法很多,我觉得把上传和数据库更新写在同一个逻辑块儿中比较好,可以写在不同的类,但在某个地方按顺序调用文件上传和数据库更新,在出现异常时执行文件和数据的删除就行了

例如:

try {
//文件上传
//更新文件路径

} catch (Exception ex) {
//文件删除
//清除文件路径
throw ex;
}
zn85600301 2010-11-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 kebin0001 的回复:]

這與 java 沒很大關係,重要的是你怎麼規畫你的邏輯。

上傳和更新數據庫不可能在同一個交易裡,所以只能自己判斷檔案是否都上傳成功。
一開始先記錄一個暫存表格,記錄目錄、目錄內檔案以及上傳是否成功。
當全部成功之後,才將記錄寫到成功的表格。

因為是暫存的表格,所以上傳失敗可以做重傳、續傳或全部刪除,這就看你怎麼規畫了。
[/Quote]
恩 这是这个意思
如果文件大小不是很多的话 你可以删掉或者不管 下次重新上传的时候覆盖
如果文件较大 就要考虑上传的不易 去检测文件是否已经存在 是否已经上传完毕
kebin0001 2010-11-08
  • 打赏
  • 举报
回复
這與 java 沒很大關係,重要的是你怎麼規畫你的邏輯。

上傳和更新數據庫不可能在同一個交易裡,所以只能自己判斷檔案是否都上傳成功。
一開始先記錄一個暫存表格,記錄目錄、目錄內檔案以及上傳是否成功。
當全部成功之後,才將記錄寫到成功的表格。

因為是暫存的表格,所以上傳失敗可以做重傳、續傳或全部刪除,這就看你怎麼規畫了。

magicluo 2010-11-08
  • 打赏
  • 举报
回复
这个。。。

因为两个步骤不是针对数据库操作吧 ,只有后者是

有个顺序 ,先是上传文件,成功以后再写入数据库记录中(写入的时候文件已经上传成功)

难道你要在写入失败时候 ,将上传的文件撤销 删除?? 这个有必要吗。。

上传和写数据 分别委托两个类来完成,分别抛出异常就行了

如果上传时候抛出异常,后面的写入肯定就不再执行

如果上传成功,写入数据库时抛异常,则文件还是在服务器上,楼主可以在写入数据库的异常处理中 处理你上传成功的文件,或者不管它

再在系统中单独写一个附件维护的模块 就完了嘛。


看看其他高手有么好建议。
tosshl 2010-11-08
  • 打赏
  • 举报
回复
推荐commons-upload

67,515

社区成员

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

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