JDBC:Java 如何连接数据库
JDBC 是 Java 访问数据库的标准支架。现代开发多用 MyBatis/JPA,但读懂 JDBC,你才能明白框架帮你省了什么。
依赖
最小闭环
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 版:
save
findById
findAll
deleteById
密码不要写死进 Git:可用本地配置文件并加入 .gitignore。
本周练习清单
成功连接本地 MySQL
用 PreparedStatement 完成增删改查
理解为何禁止字符串拼接 SQL
仓库接口与 JDBC 实现分离
YoungGc · Eden手记
学习是第一生产力。