做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