Incorrect column count: expected 1, actual 4 问题

解释:

期望的结果是1, 实际的结果是 4 ,  对象有4个属性,表有4 个字段

原因:

  1. jdbcTemplate.queryForList(selectSql.toString(), entityClass)  ;
  2. this.jdbcTemplate.queryForObject(sql, SysUser.class);

一  、而  queryForList  方法参数的解释是这样的:

Java代码  

  1. Parameters:
  2. sql SQL query to execute
  3. elementType the required type of element in the result list (for example, Integer.class)

就是第2个参数在网上说只能是简单类型String或Integer。

2、使用query查询

Java代码  

  1. jdbcTemplate.query(selectSql.toString(), rowMapper)

但多了一个参数rowMapper,这个参数需要定义为:

Java代码  

  1. @SuppressWarnings("unused")
  2. private BeanPropertyRowMapper<T> rowMapper = new BeanPropertyRowMapper<T>(entityClass){
  3. @Override
  4. protected void initBeanWrapper(BeanWrapper bw) {
  5. super.initBeanWrapper(bw);
  6. }
  7. };

具体的作用就是进入查询结果转换成实体。

二、

jdbcTemplate.queryForObject(sql, requiredType) 中的requiredType应该为基础类型,和String类型。

如果想查真正的object应该为


1

2

3

4

List<SysUser> userList = jdbcTemplate.query(sql, new Object[]{}, new BeanPropertyRowMapper<SysUser>(SysUser.class));

if(null!=userList&&userList.size()>0){

    SysUser user = userList.get(0);

}

原文地址:https://www.cnblogs.com/stujike/p/9021006.html

时间: 2024-10-11 20:41:30

Incorrect column count: expected 1, actual 4 问题的相关文章

Incorrect column count: expected 1, actual 5,JdbcTemplate queryForList 出错

spring JdbcTemplate  queryForList 出错 Incorrect column count: expected 1, actual 5 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ?Copyright 蕃薯耀 2017年7月10日 http://www.cnblogs

QueryError:Incorrect result size: expected 1, actual 0

1.错误描述 2.错误原因 3.解决办法

ERROR 3009 (HY000): Column count of mysql.user is wrong. Expected 45, found 43. Created with MySQL 5

ERROR 3009 (HY000): Column count of mysql.user is wrong. Expected 45, found 43. Created with MySQL 5的解决方案. 错误是由于你曾经升级过数据库,升级完后没有使用 mysql_upgrade升级数据结构造成的. 解决办法: 使用mysql_upgrade命令 [email protected] ~]# mysql_upgrade -u root -p 13456 原文地址:https://www.c

错误代码: 1582 Incorrect parameter count in the call to native function &#39;str_to_date&#39;

1. 错误描述 1 queries executed, 0 success, 1 errors, 0 warnings 查询:SELECT t.`name`, DATE_FORMAT(str_to_date('2015'), '%Y') as statisDate, ROUND(IFNULL(SUM(t.`amount`), 0), 3) AS ... 错误代码: 1582 Incorrect parameter count in the call to native function 'str

mysql提示Column count doesn&#39;t match value count at row 1错误

mysql提示Column count doesn't match value count at row 1错误,后来发现是由于写的SQL语句里列的数目和后面的值的数目不一致, 比如insert into 表名 (field1,field2,field3) values('a','b')这样前面的是三列,后面却只有二个值,这就会出现这个错误的. mysql提示Column count doesn't match value count at row 1错误

jdbc mysql - Column count doesn&#39;t match value count at row 1.

该句的意思是,insert操作的SQL语句里列的数目和后面值的数目不一致.比如说, String sql = "insert into t_aqi(city_name, cur_date, aqi_val, no2_val, no2_val) values(?, ?, ?, ?)"; 这里很明显,t_aqi括号中的参数的个数多余values括号中的个数. jdbc mysql - Column count doesn't match value count at row 1.

java.sql.SQLException:Column count doesn&#39;t match value count at row 1

1.错误描述 java.sql.SQLException:Column count doesn't match value count at row 1 2.错误原因     在插入数据时,插入的字段个数跟数据库表字段个数不一致 insert into student(sno,sname,sage,ssex) values(1,'张三丰','man'); 3.解决办法     保证插入数据字段个数跟数据库表中的字段个数一致 insert into student(sno,sname,sage,s

java.sql.SQLException:Column count doesn&amp;#39;t match value count at row 1

1.错误描写叙述 java.sql.SQLException:Column count doesn't match value count at row 1 2.错误原因     在插入数据时,插入的字段个数跟数据库表字段个数不一致 insert into student(sno,sname,sage,ssex) values(1,'张三丰','man'); 3.解决的方法     保证插入数据字段个数跟数据库表中的字段个数一致 insert into student(sno,sname,sag

Incorrect parameter count in the call to native function &#39;ISNULL&#39;

1.错误描述 Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Incorrect parameter count in the call to native function 'ISNULL' at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAc