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();
}
要点:
- Connection 连接
- PreparedStatement 预编译 SQL(防拼接注入)
- 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 版:
savefindByIdfindAlldeleteById
密码不要写死进 Git:可用本地配置文件并加入 .gitignore。
本周练习清单
YoungGc · Eden手记
学习是第一生产力。
如发现有错误欢迎指正,欢迎交流,接受反驳。 -- by不为 :)

浙公网安备 33010602011771号