zoukankan      html  css  js  c++  java
  • 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/

  • 相关阅读:
    聚会
    Wannafly summer camp Day2
    HDU6627 equation
    2019牛客暑期多校D.Big Integer
    对主席树的理解以及使用
    2019牛客暑期多校训练营(第四场)C.sequence(单调栈+线段树)
    2019 Multi-University Training Contest 1
    浅谈序列自动机
    2019江西省程序设计竞赛
    拉格朗日插值的应用
  • 原文地址:https://www.cnblogs.com/fanshuyao/p/7147309.html
Copyright © 2011-2022 走看看