做spring boot 时使用mybatis遇到查询出问题
问题代码如下
@Override @GetMapping("/{id}") public String getUser(@PathVariable Integer id) { String sql = "SELECT * FROM `users` WHERE u_id = ? "; System.out.println("-------------------------\n\n"); String data = JdbcTemplate.queryForObject(sql,new Object[]{id},String.class); System.out.println(data); System.out.println("-------------------------\n\n"); return data; }
进行查询时出现异常:Incorrect column count: expected 1, actual 10
网上查询很多答案都说是类型的错误,但是我的没有问题
String data = JdbcTemplate.queryForObject(sql,new Object[]{id},String.class);
后来发现是返回数据和我接受的数据类型不对,查询时是直接查询 select * from users where ... 返回的数据为多列
不会返回时序列化为String,所以修改为
@Autowired JdbcTemplate JdbcTemplate; @Override @GetMapping("/{id}") public String getUser(@PathVariable Integer id) { /** * SELECT * FROM `users` WHERE u_id = ? * Incorrect column count: expected 1, actual 10 查询结果为 10 个,所以异常 * */ String sql = "SELECT nickename FROM `users` WHERE u_id = ? "; System.out.println("-------------------------\n\n"); String data = JdbcTemplate.queryForObject(sql,new Object[]{id},String.class); System.out.println(data); System.out.println("-------------------------\n\n"); return data; }
以此为戒,再接再厉
其他资料:https://www.cnblogs.com/xxt19970908/p/5223755.html