📅  最后修改于: 2023-12-03 15:31:31.086000             🧑  作者: Mango
Java JDBC(Java Database Connectivity)是一种Java API,用于连接和操作数据库。本教程将向你介绍JDBC的基础知识和用法。
JDBC API定义了一组Java类和接口,用于与数据库进行通信。这些类和接口由Java SE平台提供,并打包在java.sql和javax.sql包中。
JDBC架构包括以下组件:
JDBC驱动程序是实现JDBC Driver API的代码库。JDBC驱动程序主要分为以下四种类型:
以下示例演示了如何连接到MySQL数据库:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Main {
public static void main(String[] args) {
try {
// 1. 注册JDBC驱动程序
Class.forName("com.mysql.cj.jdbc.Driver");
// 2. 建立数据库连接
String url = "jdbc:mysql://localhost:3306/mydatabase";
String user = "root";
String password = "mypassword";
Connection conn = DriverManager.getConnection(url, user, password);
// 3. 对数据库执行查询、更新等操作
// 4. 关闭连接
conn.close();
} catch (ClassNotFoundException e) {
System.out.println("JDBC驱动程序未找到。");
} catch (SQLException e) {
System.out.println("数据库连接失败。");
}
}
}
CRUD是指创建(Create)、读取(Read)、更新(Update)和删除(Delete)操作。JDBC API提供了执行这些操作的方法。
以下示例演示了如何向MySQL数据库插入数据:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class Main {
public static void main(String[] args) {
try {
// 1. 注册JDBC驱动程序
Class.forName("com.mysql.cj.jdbc.Driver");
// 2. 建立数据库连接
String url = "jdbc:mysql://localhost:3306/mydatabase";
String user = "root";
String password = "mypassword";
Connection conn = DriverManager.getConnection(url, user, password);
// 3. 插入数据
String sql = "INSERT INTO customers (name, email) VALUES (?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "John Doe");
pstmt.setString(2, "johndoe@example.com");
int rows = pstmt.executeUpdate();
System.out.println(rows + " 行已插入到表中。");
// 4. 关闭连接
pstmt.close();
conn.close();
} catch (ClassNotFoundException e) {
System.out.println("JDBC驱动程序未找到。");
} catch (SQLException e) {
System.out.println("数据库连接失败。");
}
}
}
以下示例演示了如何从MySQL数据库中查询数据:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Main {
public static void main(String[] args) {
try {
// 1. 注册JDBC驱动程序
Class.forName("com.mysql.cj.jdbc.Driver");
// 2. 建立数据库连接
String url = "jdbc:mysql://localhost:3306/mydatabase";
String user = "root";
String password = "mypassword";
Connection conn = DriverManager.getConnection(url, user, password);
// 3. 查询数据
String sql = "SELECT * FROM customers WHERE name LIKE ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "John%");
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
System.out.println(rs.getString("name") + "\t" + rs.getString("email"));
}
// 4. 关闭连接
rs.close();
pstmt.close();
conn.close();
} catch (ClassNotFoundException e) {
System.out.println("JDBC驱动程序未找到。");
} catch (SQLException e) {
System.out.println("数据库连接失败。");
}
}
}
以下示例演示了如何更新MySQL数据库中的数据:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class Main {
public static void main(String[] args) {
try {
// 1. 注册JDBC驱动程序
Class.forName("com.mysql.cj.jdbc.Driver");
// 2. 建立数据库连接
String url = "jdbc:mysql://localhost:3306/mydatabase";
String user = "root";
String password = "mypassword";
Connection conn = DriverManager.getConnection(url, user, password);
// 3. 更新数据
String sql = "UPDATE customers SET email = ? WHERE name = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "new-email@example.com");
pstmt.setString(2, "John Doe");
int rows = pstmt.executeUpdate();
System.out.println(rows + " 行已更新。");
// 4. 关闭连接
pstmt.close();
conn.close();
} catch (ClassNotFoundException e) {
System.out.println("JDBC驱动程序未找到。");
} catch (SQLException e) {
System.out.println("数据库连接失败。");
}
}
}
以下示例演示了如何从MySQL数据库中删除数据:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class Main {
public static void main(String[] args) {
try {
// 1. 注册JDBC驱动程序
Class.forName("com.mysql.cj.jdbc.Driver");
// 2. 建立数据库连接
String url = "jdbc:mysql://localhost:3306/mydatabase";
String user = "root";
String password = "mypassword";
Connection conn = DriverManager.getConnection(url, user, password);
// 3. 删除数据
String sql = "DELETE FROM customers WHERE name = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "John Doe");
int rows = pstmt.executeUpdate();
System.out.println(rows + " 行已删除。");
// 4. 关闭连接
pstmt.close();
conn.close();
} catch (ClassNotFoundException e) {
System.out.println("JDBC驱动程序未找到。");
} catch (SQLException e) {
System.out.println("数据库连接失败。");
}
}
}
本教程介绍了JDBC的基本概念和用法,以及如何执行CRUD操作。JDBC为Java开发人员提供了连接和操作各种类型的数据库的能力。使用JDBC,可以轻松地将Java应用程序与MySQL、Oracle、PostgreSQL等数据库集成。