Java 数据库连接(JDBC)的相关总结
JDBC 概述
Java 数据库连接(JDBC)是 Java 语言访问关系型数据库的一种标准方法,可以让开发人员使用 Java 语言访问和处理各种类型的关系型数据库。
Java 通过 JDBC 驱动程序接口标准定义了一组 API,开发人员可以使用它连接到各种各样的关系型数据库,如 MySQL、Oracle、Microsoft SQL Server 等。JDBC 将 SQL 语句发送到数据库,并处理数据库的响应。它还提供了一种抽象的方式来处理数据库的查询和结果集。
JDBC 驱动程序
JDBC 驱动程序是连接 Java 应用程序和数据库的中间层,它在 Java 代码和特定数据库之间建立连接和通信。JDBC 驱动程序通常由四个组件组成:
- JDBC API:提供了在 Java 程序中访问各种数据库时使用的核心接口和类。
- JDBC Driver Manager:用于加载驱动程序并管理数据库驱动程序的注册表。它允许应用程序利用一个或多个驱动程序来连接到数据库。
- JDBC 驱动程序:是用来连接特定类型的数据库的 Java 组件。
- 数据库特定的 API:这些是特定于特定数据库的接口,允许 JDBC 驱动程序与特定数据库进行通信。
JDBC 基本用法
JDBC 基本用法分为以下步骤:
- 加载 JDBC 驱动程序:使用
Class.forName()
方法加载驱动程序。
示例代码:
Class.forName("com.mysql.cj.jdbc.Driver");
- 建立数据库连接:使用
DriverManager.getConnection()
方法建立与数据库的连接。
示例代码:
String url = "jdbc:mysql://localhost:3306/mydatabase?useSSL=false";
String user = "root";
String password = "password";
Connection connection = DriverManager.getConnection(url, user, password);
- 创建一个 Statement 对象:创建一个使用 SQL 语句进行查询或更新操作的 Statement 对象。
示例代码:
Statement statement = connection.createStatement();
- 执行 SQL 语句:通过 Statement 对象执行 SQL 语句。
示例代码:
ResultSet resultSet = statement.executeQuery("SELECT * FROM mytable");
- 处理结果集:使用 ResultSet 对象处理查询结果。
示例代码:
while (resultSet.next()) {
int id = resultSet.getInt(1);
String name = resultSet.getString(2);
System.out.println(id + " " + name);
}
- 关闭数据库连接:在完成操作后使用
Connection.close()
关闭数据库连接。
示例代码:
connection.close();
JDBC 预处理语句
JDBC 预处理语句是一种使用占位符参数化 SQL 语句的技术。使用预处理语句可以避免常见的 SQL 注入攻击,并提高执行查询或更新操作的效率。
使用 JDBC 预处理语句步骤如下:
- 创建一个 PreparedStatement 对象,使用
Connection.prepareStatement()
方法。
示例代码:
PreparedStatement statement = connection.prepareStatement("SELECT * FROM mytable WHERE name = ?");
- 为预处理语句中的占位符设置值,使用
PreparedStatement.setXXX()
方法。
示例代码:
statement.setString(1, "John");
- 执行预处理语句,使用
PreparedStatement.executeQuery()
或PreparedStatement.executeUpdate()
方法。
示例代码:
ResultSet resultSet = statement.executeQuery();
- 处理结果集同上。
示例:使用 JDBC 连接 MySQL 数据库
以下代码示例连接 MySQL 数据库,并执行查询操作以获取数据库中 students
表的数据。
import java.sql.*;
public class Main {
public static void main(String[] args) throws Exception {
// 加载 JDBC 驱动程序
Class.forName("com.mysql.cj.jdbc.Driver");
// 建立数据库连接
String url = "jdbc:mysql://localhost:3306/mydatabase?useSSL=false";
String user = "root";
String password = "password";
Connection connection = DriverManager.getConnection(url, user, password);
// 创建 Statement 对象
Statement statement = connection.createStatement();
// 执行查询操作
ResultSet resultSet = statement.executeQuery("SELECT * FROM students");
// 处理结果集
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
int age = resultSet.getInt("age");
System.out.println(id + " " + name + " " + age);
}
// 关闭数据库连接
connection.close();
}
}
示例:使用 JDBC 预处理语句插入数据
以下代码示例插入数据到 MySQL 数据库中的 students
表。
import java.sql.*;
public class Main {
public static void main(String[] args) throws Exception {
// 加载 JDBC 驱动程序
Class.forName("com.mysql.cj.jdbc.Driver");
// 建立数据库连接
String url = "jdbc:mysql://localhost:3306/mydatabase?useSSL=false";
String user = "root";
String password = "password";
Connection connection = DriverManager.getConnection(url, user, password);
// 创建 PreparedStatement 对象
PreparedStatement statement = connection.prepareStatement("INSERT INTO students (name, age) VALUES (?, ?)");
// 为预处理语句中的占位符设置值
statement.setString(1, "John");
statement.setInt(2, 20);
// 执行插入操作
statement.executeUpdate();
// 关闭数据库连接
connection.close();
}
}
以上就是 Java 数据库连接(JDBC)的相关总结,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 数据库连接(JDBC)的相关总结 - Python技术站