`
fengzhizi715
  • 浏览: 159761 次
  • 性别: Icon_minigender_1
  • 来自: 上海 苏州
社区版块
存档分类
最新评论

jdbc关闭数据库操作容易产生的陷阱

    博客分类:
  • Java
阅读更多
大家都知道使用hibernate可以简化数据库的操作,减少一大堆try…catch的书写,以及关闭数据库的操作,大大方便了程序员的开发。然而有时候我们不得不采用jdbc,比如在银行业务中处理大批量业务数据,并对这些数据进行操作,这个时候hibernate就不太合适了。
      先上一段代码:

	public void releaseResources() {
		try {
			if (statement != null) {
				statement.close();
				statement = null;
			}

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

       这段代码看上去没问题,主要作用是关闭数据库。其实是容易产生陷阱的。
       首先当 statement为空时,就会抛出空指针异常,导致connection没有关闭,这样的话数据库是不会关闭的,最终会影响性能。因此我们需要对statement进行判断
代码应该如下:
public void releaseResources() {
		if (statement != null) {
			try {
				statement.close();
				statement = null;
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		}
		if (connection != null)
			try {
				connection.close();
				connection = null;
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
	}

同时对connection也进行了判断是否为空,这样代码是安全了,但是还是有一个隐患。
在代码中出现
// TODO Auto-generated catch block
e.printStackTrace();
这就表明是eclipse自动生成的,没有这段代码进行处理的。如果将抛出异常的代码的底层信息在web上或者桌面程序上显示,用户是接受不了的。因此我们有必要使用logger.debug(e);将异常信息记录在日志里面,而对于客户,可以抛出一个自定义封装的异常。

最后一个要注意的就是尽量使用PreparedStatement来代替Statement
1
1
分享到:
评论

相关推荐

    jdbc连接数据库jdbc连接数据库

    jdbc连接数据库 jdbc连接数据库 jdbc连接数据库 jdbc连接数据库 jdbc连接数据库

    JDBC连接数据库测试

    JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试...

    实验3 JDBC操作数据库3

    如下图所示1、通过常规JDBC访问数据库目的:练习JDBC连接、操作数据库的完整过程(所有操作写在同一个类文件中即可)注意命名规范,建议:1)项目名全部小写,例

    使用JDBC操作数据库

    使用JDBC操作数据库

    JDBC连接数据库步骤

    jdbc java 数据库 连接数据库 步骤

    数据库实验JDBC连接数据库.docx

    选课序号:36 选课序号:36 大连海事大学 数据库原理课程实验报告 (2010-2011学年第二学期) 实验八 JDBC连接数据库 班 级: 智能一班 学 号: ********** 姓 名: 徐维坚 指导教师: *** 成 绩: 2012年 6月 13日 ...

    jdbc访问数据库的步骤

    jdbc原理 jdbc访问数据库的步骤 数据库

    JDBC不同数据库连接

    JDBC不同数据库连接JDBC不同数据库连接JDBC不同数据库连接JDBC不同数据库连接JDBC不同数据库连接

    java使用jdbc将数据库数据导出到csv文件.pdf

    java使用jdbc将数据库数据导出到csv文件

    jdbc连接数据库步骤

    jdbc连接数据库的步骤,适合初学者,网上都有,但是可以下载去看看

    通过JDBC访问数据库--应用操作

    通过JDBC访问数据库~~入门必备应用操作

    JDBC连接数据库步骤及代码

    JDBC连接数据库步骤及代码,不适合初学者

    使用 JDBC 的高级数据库操作

    使用 JDBC 的高级数据库操作

    JDBC数据库编程实验

    (1)熟练掌握JDBC操作数据库的整个过程; (2)利用预处理语句操作数据库; (3)掌握可滚动和可更新的结果集的基本操作方法; (4)理解JDBC中实现事务处理的基本方法; (5)理解数据库连接池的基本原理和思想,...

    jsp中jdbc数据库连接

    jdbc连接数据库jdbc连接数据库jdbc连接数据库jdbc连接数据库jdbc连接数据库jdbc连接数据库jdbc连接数据库jdbc连接数据库jdbc连接数据库jdbc连接数据库jdbc连接数据库jdbc连接数据库jdbc连接数据库jdbc连接数据库jdbc...

    作业6 JSP JDBC操作数据库

    作业6 JDBC操作数据库 作业类型:验证性实验 实验目的:理解JDBC接口操作数据库的方法,熟练掌握数据的增删改查。 实验内容: 1. 在MySQL或其他DBS中创建一个数据库TestDB,其中创建表user,表至少3个字段(编号,...

    JDBC链接数据库代码

    使用JDBC链接数据库。

    数据库实验8 java连接数据库(JDBC代码+报告)

    程序实现了使用Java语言编程实现对数据库的访问,所有的SQL操作均在自己建立的新库里进行,数据库建议选用学生课程数据库,可以选择进行创建、插入、查询、删除和更新等操作,其中查询操作可以按学号、姓名、专业...

    《JDBC API数据库编程实材作教材》[PDF]

    这是一本关于JDBC API数据库编程的书,主要介绍Java程序设计基础、 SQL基础知识、JDBC(Java数据库连接)应用、接口和类,以及如何在JSP和Servlet中使用JDBC,并以完整的实例程序说明 JDBC API(应用程序编程接口)...

    JDBC连接数据库方法文档

    里面详细记录了JDBC连接数据库方法的文档,并附有示例

Global site tag (gtag.js) - Google Analytics