设置Connection ResultSet PreparedStatement设置为null的原因

不知道大家有木有想过在调用抽取工具类的时候首先要摆出这样的模板;

        Connection conn=null;  
        ResultSet rs=null;
        PreparedStatement st=null;

为什么呢?

个人理解

假如你这些对象没有被引用,一旦对象多,超过几千个来访问数据库每次都不释放用不了多久服务器就不行了吧

so解决办法就是将对象设置为空如果不用那么java垃圾回收机制就能释放内存啦

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SqlHelper.java连接数据库通用类... package org.jdbc.com.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class SqlHelper { /** * 设置单例 */ public static SqlHelper instance = new SqlHelper(); /** * 设置单例的一个实例方法 * * @return */ public static SqlHelper getInstance() { if (instance == null) { synchronized (SqlHelper.class) { instance = new SqlHelper(); } } return instance; } /** * 得到MySql连接 * * @return */ public static Connection getMySqlConnection() { Connection conn = null; String url = "jdbc:mysql://127.0.0.1:3306/jdbc?useUnicode=true&characterEncoding=utf-8"; String user = "root"; String password = "root"; String driver="com.mysql.jdbc.Driver"; try { Class.forName(driver); conn = DriverManager.getConnection(url, user, password); } catch (Exception e) { System.out.println("连接数据库出现异常" + e.getMessage()); } return conn; } /** * 得到MMSQL连接 * @return */ public static Connection getMMSQLConnection() { String url = "jdbc:sqlserver://localhost:1433;DatabaseName=jdbc"; String user = "sa"; String password = "sa"; String Driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"; Connection conn = null; try { Class.forName(Driver); conn = DriverManager.getConnection(url, user, password); } catch (Exception e) { System.out.println("连接数据库出现异常" + e.getMessage()); } return conn; } /** * 得到Oracle连接 * @return */ public static Connection getOracleConnection() { String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl"; String user = "scott"; String password = "scott"; String Driver="oracle.jdbc.driver.OracleDriver"; Connection conn = null; try { Class.forName(Driver); conn = DriverManager.getConnection(url, user, password); } catch (Exception e) { System.out.println("连接数据库出现异常" + e.getMessage()); } return conn; } /*** * 释放资源... * * @param rs * @param st * @param conn */ public static void Relesae(ResultSet rs, Statement st, Connection conn) { try { if (rs != null) rs.
### 回答1: 这是 Java 语言中用于执行 SQL 查询语句的经典代码片段。`PreparedStatement` 接口是 `java.sql` 包中的一个接口,用于预编译 SQL 语句并执行参数化查询。`ResultSet` 接口代表了一个结果集,它通过 `PreparedStatement` 的 `executeQuery()` 方法返回。在实际的开发中,这段代码通常会被包裹在 try-catch 块中,以便在发生异常时能够及时地关闭数据库连接和释放资源。 ### 回答2: PreparedStatement ps=null; ResultSet rs=null; 是Java语言中用于数据库操作的两个类。 PreparedStatement是预编译的 SQL 语句对象,用于执行动态 SQL 语句。与Statement相比,PreparedStatement更高效、更安全,主要是因为PreparedStatement可以预编译 SQL 语句,提高了执行效率。另外,PreparedStatement还可以防止 SQL 注入的攻击。而且,PreparedStatement还具有占位符的功能,可以灵活地传入参数,提高了代码的可维护性和可读性。 在使用PreparedStatement之前需要进行一些准备工作。首先,需要建立数据库连接,获取一个Connection对象。然后,可以通过Connection对象的prepareStatement方法创建一个PreparedStatement对象,传入需要执行的 SQL 语句作为参数。例如,可以这样创建一个PreparedStatement对象: PreparedStatement ps = conn.prepareStatement("SELECT * FROM users WHERE username = ?"); 在这个例子中,? 是一个占位符,表示待传入的参数。 ResultSet是用于处理查询结果集的类。通过执行 SQL 查询语句并将结果存储在ResultSet对象中,就可以对结果进行操作。ResultSet提供了多种获取数据的方法,例如getString、getInt等,可以根据需要选择合适的方法获取结果集中的数据。 当使用PreparedStatement执行查询操作时,通过调用executeQuery方法执行 SQL 查询语句,并将结果存储在ResultSet对象中。例如,可以这样获取一个ResultSet对象: ResultSet rs = ps.executeQuery(); 在获取了ResultSet对象之后,就可以使用ResultSet提供的方法来访问查询结果。例如,可以使用rs.getString方法获取某一列的值。 最后,使用完PreparedStatementResultSet对象后,需要及时关闭资源,释放数据库连接。可以通过调用close方法来关闭PreparedStatementResultSet对象,例如: ps.close(); rs.close(); 总之,PreparedStatementResultSet是Java中用于数据库操作的两个重要类,能够帮助我们更方便、高效地进行数据库操作。在使用完之后,需要及时关闭资源,释放数据库连接。 ### 回答3: PreparedStatement ps=null; ResultSet rs=null;这段代码是在Java中使用JDBC连接数据库时常见的操作。它主要用到了PreparedStatementResultSet这两个类。 PreparedStatement是一个预编译的SQL语句对象,用于执行具有参数的SQL查询和更新操作。ps=null意味着创建了一个PreparedStatement对象,并将其初始化为空引用。通常在创建PreparedStatement对象之前会先通过getConnection()方法获取数据库连接,并使用该连接来调用prepareStatement()方法生成PreparedStatement对象。 ResultSet是一个接口,用于表示从数据库中检索的结果集。rs=null表示创建了一个ResultSet对象,并初始化为空引用。当执行查询操作时,使用executeQuery()方法返回一个ResultSet对象,该对象可以使用next()方法遍历结果集中的数据。 需要注意的是,在使用PreparedStatementResultSet对象之前,必须先释放资源。通常在finally块中关闭PreparedStatementResultSet对象,以确保它们能够被正确关闭并释放相关资源。例如,可以调用ps.close()和rs.close()方法关闭PreparedStatementResultSet对象。 总结而言,这段代码是在准备使用JDBC连接数据库时进行的一些初始化操作,包括创建和初始化PreparedStatementResultSet对象。这些对象在执行SQL查询和更新操作时会被使用,使用完毕后需要手动关闭以释放资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值