怎么正常关闭JDBC的多个Statement

本文分享了Java中合理释放资源及处理异常的代码示例,包括Statement关闭、资源回收等关键操作,旨在提高代码健壮性和资源利用效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以前用JDBC处理多个Statement的时候,总会因为异常而无法完美的解决Statement正常关闭,今天无意看到老外写了以下一段代码,和大家分享一下:

Java代码 收藏代码
  1. privatePreparedStatementpsStmt1;
  2. privatePreparedStatementpsStmt2;
  3. privatePreparedStatementpsStmt3;
  4. ........................
  5. ........................
  6. /*关闭代码*/
  7. publicvoidcleanup()throwsSQLException{
  8. SQLExceptionexception=null;
  9. if(psStmt1!=null){
  10. try{
  11. psStmt1.close();
  12. }catch(SQLExceptione){
  13. exception=e;
  14. }finally{
  15. psStmt1=null;
  16. }
  17. }
  18. if(psStmt2!=null){
  19. try{
  20. psStmt2.close();
  21. }catch(SQLExceptione){
  22. if(exception!=null)e.setNextException(exception);
  23. exception=e;
  24. }finally{
  25. psStmt2=null;
  26. }
  27. }
  28. if(psStmt3!=null){
  29. try{
  30. psStmt3.close();
  31. }catch(SQLExceptione){
  32. if(exception!=null)e.setNextException(exception);
  33. exception=e;
  34. }finally{
  35. psStmt3=null;
  36. }
  37. }
  38. if(exception!=null){
  39. throwexception;
  40. }
  41. }


别的方法

Java代码 收藏代码
  1. /**
  2. *合理的释放所有的用到的资源
  3. */
  4. publicstaticvoidfree(){
  5. try{
  6. if(rs!=null&&!rs.isClosed()){
  7. rs.close();
  8. }
  9. }catch(SQLExceptione){
  10. //TODOAuto-generatedcatchblock
  11. e.printStackTrace();
  12. }finally{
  13. try{
  14. if(pstmt!=null&&!pstmt.isClosed()){
  15. pstmt.close();
  16. }
  17. }catch(SQLExceptione){
  18. //TODOAuto-generatedcatchblock
  19. e.printStackTrace();
  20. }
  21. try{
  22. if(connection!=null&&!connection.isClosed()){
  23. connection.close();
  24. }
  25. }catch(SQLExceptione){
  26. //TODOAuto-generatedcatchblock
  27. e.printStackTrace();
  28. }
  29. }
  30. }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值