什么是JDBC?
JDBC(Java Database Connectivity)是一个由 Java 提供的 API,它提供了一种统一的方法来访问多种关系型数据库。JDBC 提供了一系列接口和类,使得开发人员可以在 Java 程序中查询和操作数据库。
JDBC 主要提供了以下功能:
- 建立数据库连接:使用
DriverManager
类的getConnection
方法可以建立到数据库的连接。 -
执行 SQL 语句:JDBC 提供了
Statement
、PreparedStatement
和CallableStatement
三种接口来执行 SQL 语句。Statement
用于执行静态 SQL 语句,PreparedStatement
用于执行预编译的 SQL 语句,CallableStatement
用于调用存储过程。 -
处理查询结果:使用
ResultSet
接口处理 SQL 查询结果。ResultSet
对象包含了通过执行 SQL 语句获取的数据。 -
处理数据库元数据:
DatabaseMetaData
和ResultSetMetaData
接口提供了获取数据库元数据的方法。 -
处理事务:可以通过
Connection
接口的setAutoCommit
、commit
和rollback
方法来处理数据库事务。
以下是一个基本的 JDBC 使用示例:
import java.sql.*;
public class JdbcExample {
public static void main(String[] args) {
try {
// 加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 建立连接
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test", "username", "password");
// 创建 Statement
Statement stmt = conn.createStatement();
// 执行查询
ResultSet rs = stmt.executeQuery("SELECT * FROM users");
// 处理查询结果
while (rs.next()) {
System.out.println(rs.getString("username"));
}
// 关闭连接
rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
在这个例子中,我们首先加载了 MySQL 的 JDBC 驱动,然后建立了到数据库的连接,创建了一个 Statement 对象,执行了一个 SQL 查询,然后遍历查询结果并打印了每一行的 username 字段,最后关闭了所有的资源。
需要注意的是,数据库的连接、Statement 和 ResultSet 都是有状态的资源,使用完毕后必须被关闭,否则可能会造成资源泄露。在实际的开发中,我们通常会在 finally 块中关闭这些资源,以确保它们总是被正确关闭。