4.2 编程式 API
编程式 API 基于 JdbcTemplate,以 SQL 字符串 为中心访问数据库。它是 dbVisitor 中最底层、最自由的关系型数据 库入口。
适合场景
- 已经有明确 SQL,希望轻量执行。
- SQL 较复杂,例如 JOIN、子查询、窗口函数、数据库专有语法。
- 需要直接控制批量执行、存储过程、回调方法、连接级操作。
- 不希望为了当前操作建立对象映射。
不适合场景
- 大量单表 CRUD,重复 SQL 会比较多;优先考虑 Mapper API(BaseMapper)。
- 希望 DAO 以接口形式组织;优先考虑 Mapper API。
- 希望通过链式条件生成 SQL;优先考虑 构造器 API。
最小示例
已有 DataSource
DataSource dataSource = ...;
JdbcTemplate jdbc = new JdbcTemplate(dataSource);
List<User> users = jdbc.queryForList(
"select * from users where age >= :age",
CollectionUtils.asMap("age", 18),
User.class);
已有 Connection
Connection conn = ...;
JdbcTemplate jdbc = new JdbcTemplate(conn);
List<User> users = jdbc.queryForList(
"select * from users where age >= :age",
CollectionUtils.asMap("age", 18),
User.class);
深入阅读
- JdbcTemplate:完整能力入口。
- 参数传递:位置参数、名称参数、接口传参。
- 结果接收:RowMapper、Map、ResultSetExtractor 等结果处理方式。