JDBC:Java 如何连接数据库

JDBC 是 Java 访问数据库的标准支架。现代开发多用 MyBatis/JPA,但读懂 JDBC,你才能明白框架帮你省了什么。

依赖

<dependency>
  <groupId>com.mysql</groupId>
  <artifactId>mysql-connector-j</artifactId>
  <version>8.3.0</version>
</dependency>

最小闭环

String url = "jdbc:mysql://localhost:3306/eden?useSSL=false&serverTimezone=UTC&characterEncoding=utf8";
String user = "root";
String password = "your_password";

String sql = "INSERT INTO article(title, content) VALUES (?, ?)";

try (Connection conn = DriverManager.getConnection(url, user, password);
     PreparedStatement ps = conn.prepareStatement(sql)) {
    ps.setString(1, "JDBC 第一篇");
    ps.setString(2, "终于连上数据库了");
    ps.executeUpdate();
}

要点:

  1. Connection 连接
  2. PreparedStatement 预编译 SQL(防拼接注入)
  3. try-with-resources 自动关闭资源

绝对不要这样

// 危险:SQL 注入
String sql = "SELECT * FROM user WHERE name = '" + name + "'";

用户输入必须用 ? 占位 + setXxx

查询示例

String sql = "SELECT id, title FROM article WHERE id = ?";
try (Connection conn = DriverManager.getConnection(url, user, password);
     PreparedStatement ps = conn.prepareStatement(sql)) {
    ps.setLong(1, 1L);
    try (ResultSet rs = ps.executeQuery()) {
        while (rs.next()) {
            System.out.println(rs.getLong("id") + " " + rs.getString("title"));
        }
    }
}

本周小项目

实现 ArticleRepository 的 JDBC 版:

  • save
  • findById
  • findAll
  • deleteById

密码不要写死进 Git:可用本地配置文件并加入 .gitignore

本周练习清单


YoungGc · Eden手记
学习是第一生产力。

posted @ 2026-08-17 15:14  Eden手记  阅读(2)  评论(0)    收藏  举报