跳到主要内容

5.1 编程式 API

JdbcTemplate 是 dbVisitor 专门为 SQL 字符串 场景设计的数据库操作封装。可以配置数据源和查询选项并重复使用。并发使用前应完成配置;不要在多个线程之间共享同一个 JDBC Connection。

先看场景​

你的目标推荐入口
已经有 SQL,直接执行查询查询
执行 INSERT、UPDATE、DELETE 或 DDL更新
一次提交多组参数或多条 SQL批量化
调用存储过程/函数存储过程调用
SQL 会产生多个结果集多结果
想直接控制 Connection/Statement回调方法
创建和使用
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 = ?", new Object[] { "alice", 1 });
提示

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

原理​

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

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

使用指引​

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