[quote=引用 4 楼 Raffin 的回复:] 另外close掉之后是不是数据库就正式提交了的,没有回滚的机会了?如果我希望两笔数据库操作一起提交(但是代码逻辑部分不在一起),应该怎么写代码比较好?
检查异常(checked exception)和非检查异常(unchecked exception)的问题而已。 java异常分为这两种,后者全部是RuntimeException的直接或间接子类,比如NullPointerException 前者是非RuntimeException子类中的其他所有异常类,比如SQLException,FileNotFoundExcpetion。 对于检查异常,必须使用try-catch捕获或者显式throws声明。 至于数据库连接,用完就关,使用finally保证关闭连接语句被执行到。 要注意的就是conn.close()之前判断一下conn是否为空,因为当发异常未获得连接时conn可能会null。 try{ if(conn!=null){ conn.close(); } }catch(SQLException ex){ //... }
谢谢,那我把close写在prestatment的try也能通过编译和正常执行,是不是不大好?应该单独写close的try?
另外close掉之后是不是数据库就正式提交了的,没有回滚的机会了?如果我希望两笔数据库操作一起提交(但是代码逻辑部分不在一起),应该怎么写代码比较好?
67,541
社区成员
225,852
社区内容
加载中
试试用AI创作助手写篇文章吧