JavaSE__Jdbc关闭

转载 2015年11月19日 18:17:11



示例一:
JDBC数据库的关闭
	public static void close(Connection con) {
		if (con != null)
			try {
				con.close();
			} catch (SQLException e) {
				// 不做任何处理,静默处理
			}
	}

	public static void close(ResultSet rs) {
		if (rs != null)
			try {
				rs.close();
			} catch (SQLException e) {
				// 不做任何处理,静默处理
			}
	}

	public static void close(Statement stmt) {
		if (stmt != null)
			try {
				stmt.close();
			} catch (SQLException e) {
				// 不做任何处理,静默处理
			}
	}
  
	public static void DBClose(ResultSet rs, Statement stmt, Connection conn) {
		try {
			close(rs);
		} finally {
			try {
				close(stmt);
			} finally {
				close(conn);
			}
		}
	}



示例二:

失败的关闭和释放 JDBC 连接可能导致其它用户的连接经历长时间的等待。虽然超时的JDBC 连接会被 WebSphere Application Server 退回而被回收 ,但必须等待这种情形发生。
使用完 JDBC 资源后关闭它们,还可以显式关闭 JDBC ResultSets。如果没有显式关闭语句,则在完成了相关语句之后会释放 ResultsSets。
所以请确保您构建的代码在所有情况下,甚至在异常和错误条件下,都能关闭和释放 JDBC 资源。以下代码显示了 JDBC 资源的获得和使用都封装在“Try-Catch-Finally”结构中。其中,在finally 子句中处理 JDBC 资源的关闭,使所有情况下关闭都将发生。
关闭 JDBC Connection 和 preparedStatement 的正确方式
Connection conn = null; 
ResultSet rs = null; 
preparedStatement pss = null; 
try 
{ 
    conn = dataSource.getConnection(USERID,pASSWORD);
    pss = conn.prepareStatement
    ("SELECT SAVESERIALZEDDATA FROM SESSION.pINGSESSION3DATA WHERE SESSIONKEY = ?"); 
        pss.setString(1,sessionKey); 
        rs = pss.executeQuery();
        pss.close(); 
        conn.close(); 
} 
catch (Throwable t) 
{ 
        // Insert Appropriate Error Handling Here 
} 
finally 
{ 
        // The finally clause is always executed - even in error 
        // conditions preparedStatements and Connections will always be closed 
        try 
        { 
                  if (pss != null) 
                              pss.close(); 
        } 
        catch(Exception e) {} 
        try 
        { 
                  if (conn != null) 
                              conn.close(); 
        } 
        catch (Exception e){} 
        }
}


示例三:

public static void closed(ResultSet rs, PreparedStatement pstm, Connection con) {
	try {
		if (rs != null) {
			rs.close();
			rs = null;
		}
		if (pstm != null) {
			pstm.close();
			pstm = null;
		}
		if (con != null) {
			con.close();
			con = null;
		}
	} catch (Exception e) {
		e.printStackTrace();
	}
}




相关文章推荐

JavaSE_9_JDBC编程

  • 2017-02-09 15:45
  • 287KB
  • 下载

JavaSE__原始的JDBC连接数据库,查询结果集 (基础篇)

展示原生的JDBC连接数据库,以及存在的问题。 import java.sql.Connection; import java.sql.DriverManager; import java.sql.P...

com.microsoft.sqlserver.jdbc.SQLServerException: 结果集已关闭(遇到过,有用哦!)

提示错误: com.microsoft.sqlserver.jdbc.SQLServerException: 结果集已关闭 错误引起原因: ResultSet内嵌套使用Resul...

com.microsoft.sqlserver.jdbc.SQLServerException: 结果集已关闭

提示错误: com.microsoft.sqlserver.jdbc.SQLServerException:结果集已关闭 错误引起原因: ResultSet内嵌套使用ResultSet引起的 ...

[疯狂Java]JDBC:Statement、ResultSet、连接资源自动关闭、Properties配置文件

1. 建立连接得到Connection对象后如何继续操作数据库?     1) 查询数据库就必须要执行SQL语句,可以通过Connection对象conn获取一个代表要提交给数据库的SQL语句的句柄,...

jdbc的con、pstmt、rs的非正常关闭顺序探讨

首先大家都知道,正常的关闭顺序都是ResultSet、PreparedStatement、Connection的顺序,这里就不作讨论了 Connection:与特定数据库的连接(会话)。 Prep...

JDBC的关闭顺序深层解答

一、一个statement服务于result游标问题:        一个stmt多个rs进行操作引起的ResultSet已经关闭错误        一个stmt多个rs进行操作. 那么从stmt得到...

大家来说一说关于jdbc的那些事情,关于Connection,Statement和ResultSet的关闭顺序

以下只是个人观点,毕竟楼主只是大三学生一枚。还有很多需要学习的地方。 最近在做一个jsp+servlet的程序。 用的是Oracle数据库,然后安装的时候很多东西都是默认值。 用servlet,...

JDBC- 正确关闭数据库连接

在我们刚开始学习 JDBC时,由于没有使用数据库连接池,我们代码中的每一次连接都需要我们自己来关闭。 不过很多人,都没有正确关闭,包括一些 JDBC的教程。 例如: https:...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)