关闭

JavaSE__Jdbc关闭

标签: java se
341人阅读 评论(0) 收藏 举报
分类:



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




0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:816587次
    • 积分:12364
    • 等级:
    • 排名:第1320名
    • 原创:338篇
    • 转载:337篇
    • 译文:0篇
    • 评论:39条
    文章分类
    最新评论