JavaWeb--JDBC
JDBC(Java Database Connectivity,Java数据库连接)是一种Java API,可以让Java程序连接到数据库并进行数据的操作。它是Java平台的一部分,由Sun Microsystems(现为Oracle Corporation的一部分)开发。JDBC提供了一种标准的方法来连接几乎所有的关系数据库,因此它是Java应用程序中常用的数据库访问技术。
JDBC的主要功能包括:
-
连接到数据库:JDBC允许程序通过URL、用户名和密码等参数来连接到数据库。
-
执行SQL语句:一旦连接建立,JDBC允许程序执行SQL语句,包括查询、更新、删除和插入等。
-
处理结果集:对于查询操作,JDBC返回结果集(ResultSet),程序可以遍历这个结果集来获取查询结果。
-
管理数据库连接:JDBC提供了管理数据库连接的方法,包括打开和关闭连接,以及管理事务(如提交和回滚)。
JDBC的基本使用步骤通常包括:
-
加载数据库驱动:通过
Class.forName()
方法加载数据库驱动类。 -
建立连接:使用
DriverManager.getConnection()
方法建立与数据库的连接。 -
创建Statement或PreparedStatement对象:这些对象用于执行SQL语句。
-
执行SQL语句:通过Statement或PreparedStatement对象执行SQL语句,并处理结果(如ResultSet)。
-
关闭资源:最后,关闭ResultSet、Statement和Connection对象以释放数据库资源。
JDBC的优点包括:
-
平台无关性:由于Java的跨平台特性,JDBC允许Java程序在任何支持Java的平台上访问数据库。
-
简单性:JDBC提供了一种相对简单和直接的方法来访问数据库,不需要了解底层的数据库通信协议。
-
灵活性:JDBC支持多种数据库,并且可以通过不同的驱动程序来访问不同的数据库系统。
JDBC API的组成
JDBC API主要由以下几部分组成:
- DriverManager:这是JDBC的管理层,用于管理不同的JDBC驱动程序。它提供了一个用于建立数据库连接的静态方法
getConnection
。通过这个方法,可以连接到指定的数据库,返回一个Connection
对象。 - Connection:这是数据库连接对象,用于执行SQL语句并管理事务。通过
Connection
对象,可以创建Statement
、PreparedStatement
和CallableStatement
对象,这些对象用于执行SQL语句。 - Statement:用于执行静态SQL语句并返回结果。它提供了
executeQuery
(用于执行查询语句并返回ResultSet
对象)、executeUpdate
(用于执行更新语句,如INSERT、UPDATE、DELETE)和execute
(可以执行任何SQL语句)等方法。 - PreparedStatement:这是
Statement
的子类,用于执行预编译的SQL语句。与Statement
相比,PreparedStatement
可以防止SQL注入攻击,并且可以提高数据库操作的性能。 - ResultSet:这是表示数据库结果集的对象。通过
ResultSet
对象,可以遍历查询结果,并使用各种get
方法(如getInt
、getString
等)获取列值。
JDBC API的使用步骤
- 加载并注册JDBC驱动程序:在使用JDBC API之前,需要加载并注册相应的JDBC驱动程序。这通常通过调用
Class.forName
方法来实现,传入驱动程序的完全限定名。不过,从JDBC 4.0开始,如果驱动程序在类路径中,并且实现了java.sql.Driver
接口的Driver
类的META-INF/services/java.sql.Driver
文件中注册了自身,那么这一步可以省略。 - 建立数据库连接:通过调用
DriverManager.getConnection
方法,传入数据库的URL、用户名和密码,可以建立与数据库的连接,返回一个Connection
对象。 - 创建执行SQL语句的对象:使用
Connection
对象的createStatement
或prepareStatement
方法,可以创建Statement
或PreparedStatement
对象。 - 执行SQL语句:使用
Statement
或PreparedStatement
对象的executeQuery
、executeUpdate
或execute
方法,可以执行SQL语句。 - 处理结果集:如果执行的是查询语句,那么将返回一个
ResultSet
对象。通过遍历ResultSet
对象,可以获取查询结果。 - 释放资源:在完成数据库操作后,需要释放
ResultSet
、Statement
和Connection
对象,以避免资源泄漏。这通常通过调用它们的close
方法来实现。
三、JDBC API的注意事项
- 异常处理:JDBC API中的许多方法都会抛出
SQLException
异常。因此,在使用JDBC API时,需要做好异常处理工作。 - 资源管理:为了避免资源泄漏,需要确保在数据库操作完成后释放所有占用的资源。这包括关闭
ResultSet
、Statement
和Connection
对象。 - SQL注入:使用
Statement
对象执行SQL语句时,需要特别注意SQL注入问题。为了避免SQL注入攻击,建议使用PreparedStatement
对象来执行预编译的SQL语句。 - 事务管理:JDBC API提供了事务管理功能。通过调用
Connection
对象的setAutoCommit
、commit
和rollback
方法,可以管理数据库事务。