当前位置:首页 > Java > 正文

JDBC入门教程(手把手教你用Java连接数据库)

在Java开发中,如果需要与数据库进行交互,比如读取、写入或更新数据,我们通常会使用JDBC(Java Database Connectivity)。本篇JDBC入门教程将从零开始,带你一步步理解并实现一个简单的Java程序来连接MySQL数据库。

什么是JDBC?

JDBC是Java提供的一套用于执行SQL语句的API,它允许Java程序连接到各种关系型数据库(如MySQL、Oracle、PostgreSQL等),并执行查询和更新操作。通过JDBC,我们可以用统一的方式访问不同的数据库,而无需关心底层数据库的具体实现。

JDBC入门教程(手把手教你用Java连接数据库) JDBC入门教程 Java数据库连接 JDBC连接MySQL Java JDBC示例 第1张

准备工作

在开始编码前,请确保你已完成以下准备:

  • 安装了JDK(建议JDK 8或以上)
  • 安装了MySQL数据库,并创建了一个测试数据库(例如:testdb)
  • 下载了MySQL的JDBC驱动(即mysql-connector-java)

你可以从Maven仓库下载驱动,或者如果你使用Maven项目,在pom.xml中添加依赖:

<dependency>    <groupId>mysql</groupId>    <artifactId>mysql-connector-java</artifactId>    <version>8.0.33</version></dependency>  

编写第一个JDBC连接程序

下面我们将编写一个简单的Java程序,连接到MySQL数据库并查询一条数据。这个例子展示了完整的Java JDBC示例流程。

1. 加载驱动(可选)

在较新的JDBC版本中(JDBC 4.0+),驱动会自动加载,但为了兼容性,我们仍可以显式加载:

Class.forName("com.mysql.cj.jdbc.Driver");  

2. 建立数据库连接

使用DriverManager.getConnection()方法建立连接。你需要提供数据库URL、用户名和密码。

String url = "jdbc:mysql://localhost:3306/testdb?useSSL=false&serverTimezone=UTC";String user = "root";String password = "your_password";Connection conn = DriverManager.getConnection(url, user, password);  

3. 执行SQL查询

创建Statement对象并执行SQL语句:

Statement stmt = conn.createStatement();ResultSet rs = stmt.executeQuery("SELECT id, name FROM users LIMIT 1");while (rs.next()) {    System.out.println("ID: " + rs.getInt("id") + ", Name: " + rs.getString("name"));}  

4. 关闭资源

非常重要!使用完后必须关闭ResultSetStatementConnection,以释放数据库连接。

rs.close();stmt.close();conn.close();  

完整代码示例

以下是完整的Java数据库连接示例代码:

import java.sql.*;public class JdbcExample {    public static void main(String[] args) {        String url = "jdbc:mysql://localhost:3306/testdb?useSSL=false&serverTimezone=UTC";        String user = "root";        String password = "your_password";        try {            // 1. 加载驱动(可选)            Class.forName("com.mysql.cj.jdbc.Driver");            // 2. 建立连接            Connection conn = DriverManager.getConnection(url, user, password);            // 3. 创建Statement并执行查询            Statement stmt = conn.createStatement();            ResultSet rs = stmt.executeQuery("SELECT id, name FROM users LIMIT 1");            // 4. 处理结果            while (rs.next()) {                System.out.println("ID: " + rs.getInt("id") + ", Name: " + rs.getString("name"));            }            // 5. 关闭资源            rs.close();            stmt.close();            conn.close();        } catch (ClassNotFoundException | SQLException e) {            e.printStackTrace();        }    }}  

常见问题与注意事项

  • 驱动类名错误:MySQL 8.0+ 的驱动类名为 com.mysql.cj.jdbc.Driver,不是旧版的 com.mysql.jdbc.Driver
  • 时区问题:连接字符串中建议加上 serverTimezone=UTC 避免时区错误。
  • 资源未关闭:务必在 finally 块或 try-with-resources 中关闭连接,防止内存泄漏。

总结

通过本篇JDBC连接MySQL的入门教程,你应该已经掌握了如何使用Java通过JDBC连接数据库、执行查询并处理结果。JDBC是Java企业开发的基础技能之一,熟练掌握它将为你后续学习MyBatis、Hibernate等ORM框架打下坚实基础。

继续练习吧!尝试插入、更新和删除数据,或者将连接信息配置到配置文件中,让程序更灵活。