JdbcTemplate实体映射
如果你需要使用JdbcTemplate将查询的数据映射成Java POJO,那么这篇文章适合你。
一个例子入门
下面是一个将表中一行记录映射成Map的例子,也是JdbcTemplate默认提供的功能。
List> result = jdbcTemplate.queryForList("select id, name, age from tbl");
然而,我们更希望得到的是下面这样的。
List result = jdbcTemplate.queryForList("select id, name, age from tbl", User.class);
其中User中的属性与字段一一对应,还能自动将下划线转成驼峰。
开始
实现思路是通过反射将字段映射到对象对应的属性。
核心代码
public List queryForList(String sql, Class clazz, Object... params) {
final List result = new ArrayList<>();
jdbcTemplate.query(sql, params, rs -> {
try {
// 字段名称
List columnNames = new ArrayList<>();
ResultSetMetaData meta = rs.getMetaData();
int num = meta.getColumnCount();
for (int i = 0; i < num; i++)