跳到主要内容

JdbcTemplate

JdbcTemplate 是 dbVisitor 专门为 SQL 字符串 场景设计的数据库操作封装。它是无状态的,可随时创建和销毁。

创建和使用
JdbcTemplate jdbc = new JdbcTemplate(dataSource);

// 查询
List<Map<String, Object>> rows = jdbc.queryForList("select * from users where age > ?", 18);

// 更新
int affected = jdbc.executeUpdate("update users set name = ? where id = ?", "alice", 1);
提示

JdbcTemplate 的获取方式取决于项目架构,详见 框架整合

原理

JdbcTemplate 基于 Template 模式,在模板方法内部自动处理获取连接、释放连接、捕获异常。上层代码只需专注于使用 Connection。

核心模板方法
T result = jdbc.execute((ConnectionCallback<T>) con -> {
// 直接使用 Connection
});

使用指引

  • 查询,执行 SELECT 或其它带返回结果的语句。
  • 更新,执行 INSERT、UPDATE、DELETE 或 DDL。
  • 批量化,执行批量操作。
  • 存储过程,调用存储过程/存储函数。
  • 规则,通过规则赋予 SQL 动态能力。
  • 多值,执行多条语句的 SQL 并获取所有结果。
  • 脚本,执行 SQL 脚本文件或多条语句。
  • 使用模板,通过模板方法直接操作 Connection。
  • 高级特性,JdbcTemplate 特有属性与功能。
  • 参数传递,了解不同的参数传递方式。
  • 接收结果,了解不同的结果接收方式。