0
点赞
收藏
分享

微信扫一扫

NamedParameterJdbcTemplate 的 queryForObject 使用自定义对象接收报错

RockYoungTalk 2022-02-22 阅读 16
java

在开始使用NamedParameterJdbcTemplate 的时候,query查询的返回结果都是基本数据类型的包装类,但是今天使用自定义的类作为接收对象的时候发现一直报错

jdbcTemplate.queryForObject(QUERY_STUDENT, new MapSqlParameterSource("stuCode", stu.getStuCode()), Student.class);
org.springframework.jdbc.IncorrectResultSetColumnCountException: Incorrect column count: expected 1, actual 2

其实报错的意思也就是结果返回有两列,但是你只能接收一列

后来经过查询验证发现,自定义的对象需要通过

BeanPropertyRowMapper

将数据库查询的结果转换成Java类对象

也就是

jdbcTemplate.queryForObject(QUERY_STUDENT, new MapSqlParameterSource("stuCode", stu.getStuCode()), new BeanPropertyRowMapper<>(Student.class));

因为数据库的 命名一般都是通过下划线进行分割,Java是驼峰命名,如student_name,studentName。

通过BeanPropertyRowMapper这个类可以进行转换绑定

举报

相关推荐

0 条评论