JavaSE__Jdbc关闭

 


示例一:
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();
	}
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值