【第22期】观点:IT 行业加班,到底有没有价值?

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();
	}
}




举报

相关文章推荐

JDBC的误用-从一个outofmemory中想到的

最近在写一个对数据库进行批处理并调用其他开源库索引的程序。但总是运行几分钟后就OOM,最初的报错让我怀疑是那个开源库不够健壮,后来才发现是JDBC程序写得有问题。   OOM的确非常难定位问题,因为...

(翻译)Tomcat JDBC 连接池

介绍 org.apache.tomcat.jdbc.pool 包的 JDBC 连接池被用来替代 commons-dbcp 连接池。
  • duzc2
  • duzc2
  • 2012-05-21 17:52
  • 2725

欢迎关注CSDN程序人生公众号

关注程序员生活,汇聚开发轶事。

javaSe中使用Hibernate

hibernate可用在javaSe中也可以用在javaSe中,在javaSe中使用的常规流程是: hibernate配置文件 [code="java"] <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.

JAVA使用JDBC连接,修改MySQL数据库(比较乱)

前言什么是JDBC 准备工作MySQL安装配置和基础学习 JDBC基本操作 1定义记录的类可选 2连接的获取 3insert 4update 5select 6delete 代码分析 javasql ...

通过JDBC进行简单的增删改查(以MySQL为例)

前言:什么是J
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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