`
Javaloverlover
  • 浏览: 347796 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

jdbc关闭连接顺序

    博客分类:
  • java
阅读更多
jdbc连接数据库时,先获取connection,再通过statement进行操作,将结果集放在resultset中,不过在关闭数据库的时候要小心,要跟前面的操作反着来,不然就会出现异常。如果直接关闭connection的话,就是说将其他也关闭了,再对其他的如statement进行操作就会出现:操作不允许在关闭以后进行的异常。
try {
			rs = stmt.executeQuery(sql);
		} catch (SQLException e) {
			System.out.println("execute query in findUserByEmail failed");
			e.printStackTrace();
		} finally {
			stmt.close();
			conn.close();
		}
		if (rs.next()) {
			User user = new User();
			user.setUserId(rs.getLong(1));
			user.setName(rs.getString(2));
			user.setEmail(rs.getString(3));
			user.setPassword(rs.getString(4));
			rs.close();
			return user;
		} else {
			rs.close();
			return null;
		}

像这样就会有异常发生,Operation not allowed after ResultSet closed

正确的应该按顺序来进行:
try {
			rs = stmt.executeQuery(sql);
		} catch (SQLException e) {
			System.out.println("execute query in findUserByEmail failed");
			e.printStackTrace();
		}
		
		if (rs.next()) {
			User user = new User();
			user.setUserId(rs.getLong(1));
			user.setName(rs.getString(2));
			user.setEmail(rs.getString(3));
			user.setPassword(rs.getString(4));
			rs.close();
			stmt.close();
			conn.close();
			return user;
		} else {
			rs.close();
			stmt.close();
			conn.close();
			return null;
		}

分享到:
评论
1 楼 wan368500 2012-05-08  
不错,今天面试的时候问到了

相关推荐

    jdbc连接大全 jdbc连接大全,很有用的,经自己精心总结!!

    - **关闭资源顺序**: 始终遵循"后开先关"的原则,即先关闭ResultSet,再关闭Statement,最后关闭Connection。 ### 8. 连接池 - **连接池**: 如C3P0、HikariCP、DBCP等,提供预配置的数据库连接,提升性能,减少...

    jdbc连接数据库步骤

    关闭资源的顺序很重要,应按照从外到内的顺序关闭ResultSet、Statement和Connection对象。示例代码如下: ```java try { if (rs != null) rs.close(); if (stmt != null) stmt.close(); if (con != null) con....

    Jdbc驱动及连接方式.

    关闭资源时,确保按顺序关闭`ResultSet`,`Statement`和`Connection`。 6. **关闭连接**: 当完成数据库操作后,确保关闭连接以释放资源: ```java conn.close(); ``` 了解这些基本概念和步骤后,你可以根据...

    JDBC连接数据库经验总结

    - **关闭资源**:使用完后,按顺序关闭`ResultSet`、`Statement`和`Connection`,避免资源泄露。 ### 3. 数据库连接池 在实际项目中,为了提高性能和资源利用率,通常会使用数据库连接池,如Apache的DBCP、C3P0,...

    JDBC连接MySQL

    6. **关闭资源**:在操作完成后,记得关闭打开的资源以释放系统资源,顺序为ResultSet -> Statement -> Connection。 ```java rs.close(); stmt.close(); conn.close(); ``` 在Eclipse中,你可以创建一个新的...

    JDBC 数据库连接总汇

    - 关闭资源:按顺序关闭ResultSet、Statement和Connection,释放系统资源。 3. **批处理** JDBC支持批处理,可以一次提交多条SQL语句,提高效率。使用`addBatch()`方法添加SQL,然后调用`executeBatch()`执行。 ...

    简单JDBC连接

    通常,应该按照相反的顺序关闭`ResultSet`、`Statement`和`Connection`: ```java rs.close(); stmt.close(); conn.close(); ``` 8. **事务管理** JDBC也支持事务管理。你可以通过调用`Connection`对象的`...

    jdbc数据库连接实例

    7. 关闭资源:完成操作后,应按顺序关闭ResultSet、Statement和Connection,释放数据库资源。 在职工管理系统中,我们可能需要以下操作: 1. 添加新纪录:创建一个PreparedStatement,设置SQL语句(如`INSERT INTO ...

    JDBC数据库连接技术.rar

    6. 关闭资源:按顺序关闭ResultSet、Statement和Connection,释放资源。 ### 3. JDBC事务管理 JDBC支持两种事务隔离级别:自动提交和手动提交。默认情况下,每个SQL语句都在自己的事务中执行(自动提交)。若需...

    JDBC数据库

    6. **关闭资源**:使用完毕后,必须按照“后开先关”的顺序依次关闭`ResultSet`、`Statement`和`Connection`,以释放系统资源。 ### JDBC优化技巧 1. **批处理(Batch Processing)**:多个SQL语句可以一起提交,...

    常用数据库-jdbc连接

    - 关闭资源:在完成操作后,必须按顺序关闭ResultSet、Statement和Connection,以释放数据库资源。 3. **JDBC事务管理**: JDBC支持事务控制,包括开启事务、提交事务、回滚事务等。在Connection对象上设置自动...

    jdbc连接mysql实例

    总结,这个示例展示了使用JDBC连接MySQL数据库的基本步骤:加载驱动、建立连接、创建Statement、执行查询、处理结果和关闭连接。在实际项目中,这些步骤可能需要进一步封装和优化,例如使用预编译的`...

    (mysql)JDBC与Eclipse进行连接配置

    本教程将详细介绍如何在Eclipse集成开发环境中,利用JDBC技术实现与MySQL数据库的连接、数据操作以及资源的正确关闭。 首先,我们需要确保已经安装了Eclipse IDE、MySQL数据库和JDBC驱动(通常为mysql-connector-...

    使用JDBC连接数据库的各种jar包

    8. **关闭资源**: 记得在完成数据库操作后,按照`ResultSet -> Statement -> Connection`的顺序关闭资源,以释放数据库连接和内存。 9. **事务管理**: JDBC支持事务处理,可以使用`Connection`对象的`setAutoCommit...

    JDBC 连接的接口

    6. **关闭资源**:在操作完成后,必须按照“先打开后关闭”的顺序依次关闭ResultSet、Statement和Connection,释放系统资源。 ### 3. 数据库连接池 在实际开发中,为提高效率和资源利用率,通常使用数据库连接池...

    jdbc jar包

    6. **关闭资源**:确保在完成操作后,按顺序关闭`ResultSet`、`Statement`和`Connection`,释放资源。 **3. 数据库连接池** 在实际应用中,为了提高效率和减少资源消耗,通常会使用数据库连接池。比如C3P0、...

    jdbc+dao:连接oracle

    6. **关闭资源**:记得在完成数据库操作后,按顺序关闭`ResultSet`、`Statement`和`Connection`,以释放数据库资源。 在使用DAO模式时,通常会有一个DAO接口,定义了数据库操作的方法,然后实现这个接口的类来具体...

    JDBC连接数据库的标准步骤

    JDBC(Java Database Connectivity)是Java编程语言中用于与各种...以上就是JDBC连接数据库的标准步骤,涵盖了从加载驱动到关闭连接的全过程。正确地使用这些步骤,Java应用程序可以高效且安全地与各种数据库进行交互。

    用 JDBC 管理数据库连接

    6. **关闭资源**:使用完ResultSet、Statement和Connection后,必须按顺序关闭,以释放系统资源。 在实际开发中,为了提高性能和防止资源泄露,通常会使用连接池。例如,C3P0、Apache DBCP或HikariCP等库提供了一种...

    jdbc 连接数据库测试项目

    本项目是针对JDBC连接数据库进行的测试,旨在确保能够正确建立、使用和关闭数据库连接,以及执行SQL查询。 在JDBC中,连接数据库通常涉及以下步骤: 1. **加载驱动**: 首先,我们需要通过`Class.forName()`方法...

Global site tag (gtag.js) - Google Analytics