Java数据库的增删改查
时间: 2025-01-06 08:25:53 浏览: 3
### Java 实现数据库 CRUD 操作
#### 连接 MySQL 数据库并加载驱动
为了执行 CRUD 操作,首先需要建立与 MySQL 数据库的连接。这涉及到加载 JDBC 驱动程序,并通过 `DriverManager` 获取到数据库连接对象。
```java
import java.sql.Connection;
import java.sql.DriverManager;
public class DatabaseConnection {
private static final String URL = "jdbc:mysql://localhost:3306/your_database";
private static final String USER = "root";
private static final String PASSWORD = "password";
public Connection getConnection() throws Exception {
Class.forName("com.mysql.cj.jdbc.Driver").newInstance();
return DriverManager.getConnection(URL, USER, PASSWORD);
}
}
```
这段代码展示了如何初始化一个数据库连接实例[^1]。
#### 创建 (Create)
创建新记录意味着向数据库表中插入一条新的数据项。下面是一个简单的例子:
```java
import java.sql.PreparedStatement;
import java.sql.SQLException;
public void createRecord(Connection conn, String name) throws SQLException {
String sql = "INSERT INTO users(name) VALUES (?)";
try (PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setString(1, name);
int affectedRows = pstmt.executeUpdate();
System.out.println("Inserted records into the table: " + affectedRows);
}
}
```
此函数接收已有的数据库连接作为参数,并利用预处理语句来安全地插入新用户信息[^2]。
#### 查询 (Read)
查询操作用于检索存储于数据库内的特定或全部条目。这里展示了一个基于 ID 查找用户的简单案例:
```java
import java.sql.ResultSet;
public User readRecordById(Connection conn, long id) throws SQLException {
String query = "SELECT * FROM users WHERE id=?";
try (PreparedStatement pstmt = conn.prepareStatement(query)) {
pstmt.setLong(1, id);
ResultSet rs = pstmt.executeQuery();
if (rs.next()) {
return new User(rs.getLong("id"), rs.getString("name"));
} else {
throw new RuntimeException("User not found");
}
}
}
```
上述方法返回指定编号对应的用户实体;如果找不到匹配的结果,则抛出异常。
#### 更新 (Update)
当需要修改现有记录的信息时可以使用更新命令。以下是更改用户名字的例子:
```java
public boolean updateNameById(Connection conn, long id, String newName) throws SQLException {
String sql = "UPDATE users SET name=? WHERE id=?";
try (PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setString(1, newName);
pstmt.setLong(2, id);
int rowsAffected = pstmt.executeUpdate();
return rowsAffected > 0;
}
}
```
这个过程会尝试改变给定ID所关联的名字字段值,并告知是否有任何改动发生。
#### 删除 (Delete)
最后,在不再需要某些记录的情况下可以选择将其移除。下面是按 ID 移除单个用户的方法:
```java
public boolean deleteRecordById(Connection conn, long id) throws SQLException {
String sql = "DELETE FROM users WHERE id=?";
try (PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setLong(1, id);
int rowsDeleted = pstmt.executeUpdate();
return rowsDeleted > 0;
}
}
```
成功调用后将会永久性地从数据库中清除选定的对象。
阅读全文