0 0

有关JDBC,ResultSet对象多次使用后再关闭10

//代码
...
ResultSet rs = this.conn.prepareStatement("select * from test1").executeQuery(); //注sql语句不同
while(rs.next()){
  ...
}
rs = this.conn.prepareStatement("select * from test2").executeQuery(); //注sql语句不同
while(rs.next()){
  ...
}
rs = this.conn.prepareStatement("select * from test3").executeQuery(); //注sql语句不同
while(rs.next()){
  ...
}
...
rs.getStatement().close();

//疑问1:多次使用rs对象后,我在最后关闭一次,这样有没有问题?还是要每次用完都关闭(如上代码要关3次rs?)
//疑问2:使用rs.getStatement().close();关闭前,有没有必要先使用rs.close();关闭,每次都是吗(如上代码要关3次rs?)?
DAO 
2008年10月15日 22:12

3个答案 按时间排序 按投票排序

0 0

多次使用rs对象后,我在最后关闭一次,这样有没有问题  没有问题,因为statement可以共享,以免多次打开关闭,效率会降低。
使用rs.getStatement().close();关闭前,有没有必要先使用rs.close();关闭,每次都是吗  根据习惯,可以关,也可以不关,因为rs.getStatemtnt().close()是强制关闭对数据库的访问的,不过推荐关掉,这是一个好的编程习惯

2008年10月22日 23:00
0 0

没认真想过,我用的时候,还有看我们经理的代码也是用一次关一次。
好像没人关心啊,来顶顶,等人解释。

2008年10月21日 13:24
0 0

应该是每次用完都关闭rs.close();你试下看

2008年10月15日 22:12

相关推荐

    多线程以JDBC的方式返回海量数据

    对于多线程处理,每个线程可以拥有自己的`Statement`或`ResultSet`对象。为了避免线程之间的数据竞争,我们需要确保每个线程只操作它自己的数据,或者使用数据库提供的事务支持来确保数据的一致性。 以下是一个基本...

    JDBC常见易用的接口和类

    SQL 语句被预编译并且存储在 PreparedStatement 对象中,然后可以使用此对象高效的多次执行该语句。 CallableStatement CallableStatement 是用于执行 SQL 存储过程的接口。它可以用于执行存储过程,并返回结果。 ...

    jdbc jdbc jdbc

    6. **批处理(Batch Processing)**:对于需要执行大量相似SQL语句的情况,JDBC提供批处理功能,允许一次发送多个SQL语句,从而提高效率。 7. **JDBC URL**:每个数据库驱动都有一个特定的JDBC URL格式,用于标识要...

    JDBC数据库连接测试

    - **PreparedStatement**:预编译的SQL语句,适用于多次执行相同SQL的情况,可防止SQL注入,提高性能。 - **CallableStatement**:用于调用数据库存储过程,其方法命名与PreparedStatement类似,但多了`...

    Spring Data JDBC与JDBC的区别

    6. **PreparedStatement**: 预编译的SQL语句,具有更好的性能和安全性,常用于动态SQL或多次执行相同的SQL。 7. **CallableStatement**: 用于调用数据库存储过程。 8. **ResultSet**: 存储查询结果,包含多条记录,...

    jdbc访问数据库的步骤

    `PreparedStatement`比`Statement`更安全且效率更高,因为它支持预编译SQL语句,可以防止SQL注入攻击,并且在执行多次相同操作时性能更好。 4. **执行SQL语句**:如果执行的是查询语句(如SELECT),则使用`...

    JDBC.rar_JDBC程序_jdbc

    5. **PreparedStatement**: PreparedStatement是Statement的子类,预编译的SQL语句,可以防止SQL注入,提高执行效率,适合多次执行相同的SQL语句。 6. **ResultSet**: ResultSet对象是查询结果的集合,包含了从...

    jdbc资料jdbc资料jdbc资料pdf

    - 改善性能,尤其是当同一个SQL语句被多次执行时。 - **使用方法**: - 创建`PreparedStatement`对象。 - 使用占位符`?`代替SQL中的参数。 - 设置参数值,使用`setXxx(int paramIndex, Xxx value)`方法。 - ...

    mysql的JDBC驱动包

    - 使用PreparedStatement代替Statement,以防止SQL注入攻击,并提高性能(因为预编译的SQL语句可以被多次执行)。 - 在可能的情况下,使用批处理执行多条SQL语句,以提升效率。 - 注意异常处理,确保在出现错误时...

    jdbc 总结 有参考价值

    2. 性能:PreparedStatement的预编译特性使得多次执行相同SQL时,性能优于Statement。 3. 功能:Statement适用于简单SQL,而PreparedStatement适合复杂、参数化的SQL。 四、事务管理 JDBC提供了对数据库事务的支持...

    达内jdbc学习笔记

    5. **处理结果集**:对于查询操作,`executeQuery()`返回一个ResultSet对象,可以遍历其中的数据。 6. **关闭资源**:在操作完成后,需要依次关闭ResultSet、Statement和Connection对象,释放数据库资源。 接下来,...

    JDBC教程-使用实例

    - **ResultSet对象1** 和 **2**:`ResultSet`对象是执行SQL查询后返回的结果集。它包含了从数据库查询的数据,可以通过迭代器或索引访问。通过`Statement`或`PreparedStatement`的`executeQuery()`方法获取。 6. *...

    jdbc.rar_java jdbc

    对于大量相似的SQL操作,JDBC提供了批处理功能,可以一次性提交多个SQL语句,提高性能。 通过上述知识点,你可以构建一个基于GUI的Java应用,允许用户通过输入查询条件,展示查询结果,或者进行增删改操作。记住,...

    JDBC经典练习题

    5. **处理结果集**:如果执行的是查询操作,可以使用ResultSet对象遍历查询结果。例如,`ResultSet rs = stmt.executeQuery("SELECT * FROM mytable");`,然后通过`next()`方法移动指针并获取数据。 6. **关闭资源*...

    jdbc的多个pdf帮助文档

    本资料包包含多个JDBC的PDF帮助文档,这些文档详细地介绍了JDBC的相关概念和技术,是初学者入门和进阶的宝贵资源。以下是一些关键知识点的概述: 1. **JDBC驱动类型**:JDBC驱动分为四种类型,分别是Type 1(JDBC-...

    JDBC数据库连接JAR包

    - 处理结果:如果执行的是查询语句,将返回ResultSet对象,通过迭代ResultSet获取查询结果。 - 关闭资源:在操作完成后,需关闭ResultSet、Statement和Connection,释放数据库资源。 3. **JDBC性能优化** - 使用...

    JDBC(掌握JDBC的的CRUD、理解JDBC中各个对象的作用、掌握Druid的使用)

    例如,当我们需要多次插入不同数据时,可以使用PreparedStatement避免SQL注入。 4. ResultSet:代表SQL查询的结果集,提供遍历查询结果的方法。 5. DriverManager:管理数据库驱动程序,负责建立和关闭数据库连接...

    尚硅谷jdbc视频教程

    5. **处理结果**:对于查询操作,需要使用ResultSet对象处理结果集;对于修改操作,则直接获取受影响的行数。 6. **关闭资源**:最后确保所有打开的资源被关闭,包括ResultSet、Statement以及Connection。 #### 五...

    JDBC.rar_java jdbc_jdbc

    此外,使用批处理可以提高性能,通过`addBatch()`添加多条SQL,然后一次性执行。 10. **异常处理**: 在JDBC编程中,必须妥善处理可能抛出的`SQLException`。通常的做法是捕获异常并记录错误信息,然后决定是否需要...

    非常全面JDBC资源

    3. **关闭资源**: 使用try-with-resources语句确保在操作完成后关闭`Connection`、`Statement`和`ResultSet`。 4. **使用ResultSets的迭代器模式**: 避免大量数据一次性加载到内存,采用迭代器分批次读取结果。 **...

Global site tag (gtag.js) - Google Analytics