Java数据库怎么操作?5步教你增删改查与JDBC实战(完整指南
本教程系统讲解Java数据库操作方法,包括JDBC基础、数据库连接、增删改查操作、事务管理及异常处理。通过实例代码和详细解析,帮助新手快速掌握数据库操作技能,实现数据增删改查和项目实践。教程适用于2026最新Java版本,适合Java开发新手、企业项目数据库管理及小型应用开发。
正文教程
一、JDBC基础
JDBC(Java Database Connectivity)是Java操作数据库的标准接口,支持多种数据库(MySQL、Oracle、PostgreSQL等)。
添加依赖(以MySQL为例):
<!-- Maven依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.1.0</version>
</dependency>
技巧:
确保数据库驱动版本匹配Java版本
Maven项目添加依赖,更方便管理
二、数据库连接
基本连接代码:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBConnect {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/testdb?useSSL=false&serverTimezone=UTC";
String user = "root";
String password = "123456";
try {
Connection conn = DriverManager.getConnection(url, user, password);
System.out.println("数据库连接成功!");
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
技巧:
useSSL=false避免SSL警告serverTimezone=UTC避免时区错误try-catch捕获异常,保证程序稳定
三、增删改查操作
1. 插入数据(INSERT):
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class InsertDemo {
public static void main(String[] args) throws Exception {
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/testdb?useSSL=false&serverTimezone=UTC",
"root", "123456"
);
String sql = "INSERT INTO users(name, age) VALUES(?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "Alice");
pstmt.setInt(2, 25);
int rows = pstmt.executeUpdate();
System.out.println("插入行数: " + rows);
pstmt.close();
conn.close();
}
}
2. 查询数据(SELECT):
import java.sql.*;
public class SelectDemo {
public static void main(String[] args) throws Exception {
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/testdb?useSSL=false&serverTimezone=UTC",
"root", "123456"
);
String sql = "SELECT id, name, age FROM users";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
System.out.println(rs.getInt("id") + " | " +
rs.getString("name") + " | " +
rs.getInt("age"));
}
rs.close();
stmt.close();
conn.close();
}
}
3. 更新数据(UPDATE):
String sql = "UPDATE users SET age=? WHERE name=?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, 26);
pstmt.setString(2, "Alice");
int rows = pstmt.executeUpdate();
4. 删除数据(DELETE):
String sql = "DELETE FROM users WHERE name=?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "Alice");
int rows = pstmt.executeUpdate();
技巧:
使用
PreparedStatement防止SQL注入操作完成后及时关闭资源
四、事务管理
Connection conn = DriverManager.getConnection(url, user, password);
try {
conn.setAutoCommit(false);
// 执行多条SQL
PreparedStatement pstmt1 = conn.prepareStatement("INSERT INTO users(name, age) VALUES(?, ?)");
pstmt1.setString(1, "Bob");
pstmt1.setInt(2, 30);
pstmt1.executeUpdate();
PreparedStatement pstmt2 = conn.prepareStatement("UPDATE users SET age=? WHERE name=?");
pstmt2.setInt(1, 31);
pstmt2.setString(2, "Bob");
pstmt2.executeUpdate();
conn.commit(); // 提交事务
} catch (SQLException e) {
conn.rollback(); // 回滚事务
e.printStackTrace();
} finally {
conn.close();
}
技巧:
setAutoCommit(false)开启事务出现异常时使用
rollback保证数据一致性
五、实用操作技巧
使用
PreparedStatement防止SQL注入使用try-with-resources自动关闭数据库连接
避免频繁创建连接,可使用连接池(如HikariCP)
对大数据操作,分页查询提高性能
异常捕获与日志记录保证程序稳定
总结
Java数据库操作是后端开发基础技能,掌握JDBC连接、增删改查、事务管理与异常处理,可以实现高效、安全的数据管理。建议新手先学习JDBC基础与SQL操作,再逐步掌握事务和连接池优化,从而提升Java项目开发能力。