• 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.com/fanshuyao/

    一、问题描述:

    查询时使用JdbcTemplate 中的queryForList发生错误,如下:

    查询方法如下:

    Java代码  收藏代码
    1. jdbcTemplate.queryForList(selectSql.toString(), entityClass)  

    查询sql如下:

    Sql代码  收藏代码
    1. select * from test where 1=1 order by create_time desc limit 0,10  

    错误如下:

    Java代码  收藏代码
    1. Incorrect column count: expected 1, actual 5  

    二、解决方案:

    1、上面错误的原因是,查询返回的结果列期望为1,但实际返回的是5列,因为test表中有5个字段,故返回5列。而这个方法参数的解释是这样的:

    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.     };   

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

    到这步也就解决问题了。

    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    ©Copyright 蕃薯耀 2017年7月10日

    http://www.cnblogs.com/fanshuyao/

  • 相关阅读:
    MDC – Text field
    基因组计算加速平台调研
    【动植物研究动态】20220515文献解读
    【WDL】8. 实践:本地/集群运行
    初入编程之门的个人建议1.0
    IP 地址、网络号和主机号、ABC三类、ip地址可分配问题、子网掩码、子网划分
    Linux查看文件夹大小命令
    穿越雷区 (建图+最短路)
    密文搜索 (排序预处理+map,string)
    redis 主从复制
  • 原文地址:https://www.cnblogs.com/fanshuyao/p/7147309.html
Copyright © 2020-2023  润新知