JDBC,全称为Java Database Connectivity,是Java语言中用于数据库操作的一套API,它提供了一种标准的方法,允许Java程序连接到数据库,执行SQL语句,以及处理结果。JDBC是一个独立于数据库的接口,这意味着使用JDBC编写的程序可以与多种不同的数据库系统进行交互。
JDBC的主要组件:
- Driver: 驱动程序,用于实现JDBC与特定数据库之间的通信。
- Connection: 连接对象,代表与数据库的连接。
- Statement: 用于执行静态SQL语句并返回它生成的结果的对象。
- PreparedStatement: 用于执行带有一个或多个输入参数的预编译SQL语句的对象。
- CallableStatement: 用于执行数据库存储过程的对象。
- ResultSet: 包含Statement或PreparedStatement执行生成的数据集的对象。
使用JDBC的基本步骤:
- 加载和注册JDBC驱动:确保JDBC驱动程序被加载并注册到JVM中。
- 建立数据库连接:使用
DriverManager.getConnection(url, username, password)
方法建立与数据库的连接。 - 创建Statement或PreparedStatement:根据需要执行的SQL语句类型创建相应的对象。
- 执行SQL语句:使用Statement或PreparedStatement执行SQL查询或更新。
- 处理结果:如果是查询,使用ResultSet来处理返回的数据。
- 清理环境:关闭ResultSet、Statement、PreparedStatement和Connection,释放资源。
示例代码:
import java.sql.*;
public class JDBCDemo {
public static void main(String[] args) {
try {
// 加载和注册JDBC驱动
Class.forName("com.mysql.jdbc.Driver");
// 建立数据库连接
String url = "jdbc:mysql://localhost:3306/mydb";
String username = "root";
String password = "password";
Connection conn = DriverManager.getConnection(url, username, password);
// 创建Statement对象
Statement stmt = conn.createStatement();
// 执行查询
String sql = "SELECT * FROM my_table";
ResultSet rs = stmt.executeQuery(sql);
// 处理结果集
while (rs.next()) {
// 通过列名获取数据
int id = rs.getInt("id");
String name = rs.getString("name");
// 打印数据
System.out.println("ID: " + id + ", Name: " + name);
}
// 清理环境
rs.close();
stmt.close();
conn.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}