大家都知道使用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
分享到:
相关推荐
- **作用**:JDBC使得Java程序能够以统一的方式与多种数据库进行交互,大大简化了数据库开发过程。 ##### 安装配置指南 - **下载安装JDBC驱动**:根据所使用的数据库类型(如MySQL、Oracle等),从官方网站下载...
- **异常处理**:在使用JDBC进行数据库操作时,要确保妥善处理可能出现的各种异常。 - **资源释放**:确保在使用完毕后关闭所有打开的资源,避免资源泄露问题。 - **安全性考虑**:使用预编译语句(`...
- 解析:JDBC是Java访问数据库的标准API,包括连接数据库、执行SQL、处理结果集等步骤。理解ACID(原子性、一致性、隔离性、持久性)是数据库事务管理的基础。 以上只是Java面试中部分可能出现的技术陷阱,实际...
3. Bug和SqlSession异常:MyBatis中的SqlSession是数据库操作的主要入口,如果出现异常,可能是因为SqlSession没有正确关闭,导致资源泄漏。在Java中,推荐使用try-with-resources语句来自动关闭SqlSession,或者在...
对于刚接触数据库连接的开发者来说,这样的模板是很有价值的,因为它可以帮助他们快速上手,避免遇到常见的错误和陷阱。 总之,JavaLinkDataBase.rar提供的内容旨在教授Java开发者如何使用JDBC连接MySQL和Oracle...
**问题描述**:在使用JDBC进行数据库操作时,如果没有正确地关闭`Statement`、`ResultSet`等资源,可能会导致数据库连接资源的浪费甚至系统性能下降。 - **原因分析**:当出现异常导致正常路径无法执行时,未关闭的...
通过JDBC,我们可以执行SQL语句、查询数据、更新数据库等操作。 在Java中,连接MySQL数据库需要MySQL JDBC驱动,也称为Connector/J。这个驱动器实现了JDBC接口,使得Java程序能够与MySQL服务器进行通信。要使用...
`mysql-connector-java-5.1.46.jar` 是这个压缩包的核心文件,它是MySQL JDBC驱动程序,实现了Java的JDBC API,使得Java开发者能够无缝地在MySQL数据库上执行SQL语句,进行数据的增删改查等操作。这个JAR文件包含了...
在Oracle数据库中,存储过程是预编译的SQL语句集合,它们封装了特定的数据库操作,可提高性能,减少网络流量,并提供更安全的数据访问。分页是数据查询时常用的一种技术,尤其是在大型应用程序中,它允许用户按页...
在Java数据库连接(JDBC)中,批量操作是提高性能和效率的重要技术。批量处理允许应用程序将多个SQL语句组合在一起,一次性提交到数据库,减少了网络通信次数,提升了整体性能。 批量处理主要涉及两个关键方法:`...
### Hive安装与配置教程知识点详解 #### 一、Hive简介 Hive 是基于 Hadoop 的数据仓库工具,可以将结构化的数据文件映射为一张...此外,还特别强调了在配置过程中需要注意的事项,帮助用户避免常见的错误和陷阱。
在Java中,我们通常使用JDBC(Java Database Connectivity)来连接和操作数据库。以下是基于这些信息可能涵盖的一些关键知识点: 1. **JDBC API**: JDBC是Java标准API,用于连接Java应用程序和各种类型的数据库。...
在IT行业中,Hibernate是一个非常重要的Java持久化框架,它简化了数据库操作,使得开发者能够更加专注于业务逻辑,而不是底层的数据存取细节。本教程“hibernate-biji”旨在指导你如何有效地使用Hibernate,以及一些...
DbUtils的核心优势在于它提供了一系列方便快捷的方法来简化常见的数据库操作,如增删改查等,并且通过内部机制处理了许多常见的编程陷阱,例如资源释放问题。 #### 二、DbUtils 关键组件介绍 ##### 1. QueryRunner...
在操作数据库时,应使用正确的资源管理策略,比如,在操作完成后及时关闭ResultSet、Statement和Connection对象。 以上是35个常见的Java代码性能优化技巧的总结,实际运用时需要根据具体的应用场景和需求进行适当的...
然而,在许多实际应用场景中,应用往往只需要处理单一的数据源(通常是数据库),这时使用本地事务(例如JDBC提供的事务管理功能)就足够了。 #### 二、事务管理的重要性 事务处理的核心在于确保一系列数据库操作...
7. **数据库操作**:包括SQL优化、JDBC最佳实践、连接池配置等,提倡使用预编译的PreparedStatement防止SQL注入,并合理设置连接池大小以优化数据库性能。 8. **日志管理**:推荐使用SLF4J和Logback进行日志记录,...