1. 程式人生 > >Incorrect column count: expected 1, actual 5

Incorrect column count: expected 1, actual 5

Incorrect column count: expected 1, actual 5

今天在使用 Spring JDBC Template 是被坑了一把。

腦殼兒疼

出現了這麼錯誤:

Incorrect column count: expected 1, actual 5

報錯情況:

出錯的原因:

(1)錯誤方式一:

String sql = "select * from sysuser where id = 3";
User s = this.jdbcTemplate.queryForObject(sql, User.class
);

其實這樣是不對的,

(2)錯誤方式二:

String sql = "select * from tb_user";
   List<User> userList = jt.queryForList(sql,User.class);

在這裡插入圖片描述

雖然不報錯,也是不對


解決方法

(1)只能使用 String.class 或者 Integer.class 應該為:

String sql = "select name from sysuser where id = 3";
	String s = this.jdbcTemplate.queryForObject
(sql, String.class); System.out.println(s);

這個 jdbcTemplate.queryForObject(sql, requiredType) 中的 requiredType 應該為基礎型別,和 String 型別。

(2)如果要獲取多條資料,使用 list 的話,這樣:

List<User> userList = jdbcTemplate.query(sql, new Object[]{}, new BeanPropertyRowMapper<User>(User.class));
if
(null!=userList&&userList.size()>0){ User user = userList.get(0); }

這樣才可以

特此記錄!

更多文章連結