新闻中心

Java数据库怎么操作?5步教你增删改查与JDBC实战(完整指南

栏目:软件教程 日期: 作者:admin 阅读:16

本教程系统讲解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保证数据一致性


五、实用操作技巧

  1. 使用PreparedStatement防止SQL注入

  2. 使用try-with-resources自动关闭数据库连接

  3. 避免频繁创建连接,可使用连接池(如HikariCP)

  4. 对大数据操作,分页查询提高性能

  5. 异常捕获与日志记录保证程序稳定


总结

Java数据库操作是后端开发基础技能,掌握JDBC连接、增删改查、事务管理与异常处理,可以实现高效、安全的数据管理。建议新手先学习JDBC基础与SQL操作,再逐步掌握事务和连接池优化,从而提升Java项目开发能力。

相关资讯