Java 使用JdbcTemplate 中的queryForList发生错误解决办法

Java 使用JdbcTemplate 中的queryForList发生错误解决办法

         在开发项目中遇到JdbcTemplate 中的queryForList发生错误,很是头疼,在网上找了相关资料,可以帮忙解决,这里记录下,

一、问题描述: 

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

查询方法如下:

jdbcTemplate.queryForList(selectSql.toString(), entityClass) 

查询sql如下:

select * from test where 1=1 order by create_time desc limit 0,10 

错误如下:

Incorrect column count: expected 1, actual 5 

二、解决方案:

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

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

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

2、使用query查询

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

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

@SuppressWarnings("unused")
  private BeanPropertyRowMapper<T> rowMapper = new BeanPropertyRowMapper<T>(entityClass){
    @Override
    protected void initBeanWrapper(BeanWrapper bw) {
      super.initBeanWrapper(bw);
    }
  };

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

到这步也就解决问题了。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • Java中ArrayList的removeAll方法详解

    本文介绍的是关于Java中ArrayList的removeAll方法的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 在开发过程中,遇到一个情况,就是从所有骑手Id中过滤没有标签的骑手Id(直接查询没有标签的骑手不容易实现), List<Integer> allRiderIdList = new ArrayList(); // 所有的骑手,大致有23W数据 List<Integer> hasAnyTagRiderId = new ArrayList(); // 有标签

  • Java 中的vector和list的区别和使用实例详解

    要了解vector,list,deque.我们先来了解一下STL. STL是Standard Template Library的简称,中文名是标准模板库.从根本上说,STL是一些容器和算法的集合.STL可分为容器(containers).迭代器(iterators).空间配置器(allocator).配接器(adapters).算法(algorithms).仿函数(functors)六个部分.指针被封装成迭代器,这里vector,list就是所谓的容器. 我们常常在实现链表,栈,队列或者数组时,

  • Java List 用法实例详解

    Java List 用法实例详解 Java中可变数组的原理就是不断的创建新的数组,将原数组加到新的数组中,下文对Java List用法做了详解. List:元素是有序的(怎么存的就怎么取出来,顺序不会乱),元素可以重复(角标1上有个3,角标2上也可以有个3)因为该集合体系有索引 ArrayList:底层的数据结构使用的是数组结构(数组长度是可变的百分之五十延长)(特点是查询很快,但增删较慢)线程不同步 LinkedList:底层的数据结构是链表结构(特点是查询较慢,增删较快) Vector:底层

  • Java中Arraylist动态扩容方法详解

    前言 本文主要给大家介绍了关于Java中Arraylist动态扩容的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. ArrayList 概述 ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长.ArrayList不是线程安全的,只能用在单线程环境下.实现了Serializable接口,因此它支持序列化,能够通过序列化传输:实现了RandomAccess接口,支持快速随机访问,实际上就是通过下标序号进行快速访问:实现了Cloneable接口,能被克隆.

  • Java Collections.sort()实现List排序的默认方法和自定义方法

    1.java提供的默认list排序方法 主要代码: List<String> list = new ArrayList();list.add("刘媛媛"); list.add("王硕"); list.add("李明"); list.add("刘迪"); list.add("刘布"); //升序 Collections.sort(list,Collator.getInstance(java.uti

  • Java编程实现数组转成list及list转数组的方法

    本文实例讲述了Java编程实现数组转成list及list转数组的方法.分享给大家供大家参考,具体如下: 数组转成list: 方法一: String[] userid = {"aa","bb","cc"}; List<String> userList = new ArrayList<String>(); Collections.addAll(userList, userid); 方法二: String[] userid =

  • java中对List分段操作的实例

    java中对List分段操作的实例 问题:假设A系统查询出来一个很大很大的List,现在B系统想要得到这个List来导出报表,但是B系统部署环境条件有限,内存容不下这么大一个List,这时候我们就需要把List切分,然后再一个一个导出了. 如果按照传统方式,可能会比较繁琐,我们可以运用List里面的subList方法来实现,代码如下: import java.util.ArrayList; import java.util.List; public class listTest { public

  • Java 使用JdbcTemplate 中的queryForList发生错误解决办法

    Java 使用JdbcTemplate 中的queryForList发生错误解决办法          在开发项目中遇到JdbcTemplate 中的queryForList发生错误,很是头疼,在网上找了相关资料,可以帮忙解决,这里记录下, 一.问题描述:  查询时使用JdbcTemplate 中的queryForList发生错误,如下: 查询方法如下: jdbcTemplate.queryForList(selectSql.toString(), entityClass) 查询sql如下: s

  • java.lang.NoClassDefFoundError错误解决办法

    java.lang.NoClassDefFoundError错误解决办法 前言 在日常Java开发中,我们经常碰到java.lang.NoClassDefFoundError这样的错误,需要花费很多时间去找错误的原因,具体是哪个类不见了?类明明还在,为什么找不到?而且我们很容易把java.lang.NoClassDefFoundError和java.lang.ClassNotfoundException这两个错误搞混,事实上这两个错误是完全不同的.我们往往花费时间去不断尝试一些其他的方法去解决这

  • java.lang.NoSuchMethodException: com.sun.proxy.$Proxy58.list错误解决办法

    java.lang.NoSuchMethodException: com.sun.proxy.$Proxy58.list错误解决办法 玩web的SSH总会有些令你意想不到的exception,这里其中有很多事自己不小心,或者马虎所造成.因此,解决的方案会各有不同,别人出现的异常解决方案对你的可能无效,就像上面的我报的异常一样,百度了很多很多次,给我的答案无非就是在aop上加上一句,但是非常抱歉,我加上去无效!所以还是那句话,对于自己的异常,还是要自己解决. 首先说明一下,我这次的练习的ssh结构

  • Android 中读取SD卡文件时抛出NullPointerException错误解决办法

    Android 中读取SD卡文件时抛出NullPointerException错误解决办法 相关源码: package com.example.musicplayer; import java.io.File; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.os.Environment; import

  • Eclipse 开发java 出现Failed to create the Java Virtual Machine错误解决办法

    Eclipse 开发java 出现Failed to create the Java Virtual Machine错误解决办法 一直用Eclipse开发Java,突然有这么一天,无法启动了,splash窗口显示"Failed to create the Java Virtual Machine" 修改eclipse.ini配置文件,找到下面的片段: --launcher.XXMaxPermSize 256M -showsplash org.eclipse.platform --lau

  • php中laravel调度执行错误解决方法

    我们说laravel框架的功能性比较明确,作为全栈框架在代码的运行上是比较简洁的.在对laravel框架安装完成后,我们可以就其中的一些操作为大家展现.本篇要带来的是在laravel中的调度,分为两种不同目录的情况讨论,同时把可能在调度中会出现的错误情况,单独为大家呈现并解决. 1.不在laravel根目录(命令行操作前的地址) php /www/wwwroot/laravel6/artisan schedule:run /www/wwwroot/laravel/artisan 解释 /www/

  • 运行独立 pyspark 时出现 Windows 错误解决办法

    我正在尝试在 Anaconda 中导入 pyspark 并运行示例代码.但是,每当我尝试在 Anaconda 中运行代码时,都会收到以下错误消息. 尝试连接到 Java 服务器时发生 ERROR:py4j.java_gateway:An 错误(127.0.0.1:53294)追溯(最近一次调用最近):文件" C:\ spark\python\lib\py4j-0.10.3-src.zip\py4j\java_gateway.py",行 send_command self.socket.

  • Android webveiw 出现栈错误解决办法

    Android webveiw 出现栈错误解决办法 前言: 最近做一个项目,项目调试基础库的一个调试工具展示设备信息页面使用WebView.有一个应用集成调试基础库展示内容时出现 java.lang.UnsupportedOperationException: For security reasons, WebView is not allowed in privileged processes 因为应用是系统级别的,在AndroidManifest.xml中添加了android:sharedU

  • hadoop格式化HDFS出现错误解决办法

    hadoop格式化HDFS出现错误解决办法 报错信息: host:java.net.UnknownHostException: centos-wang: centos-wang: unknown error 在执行hadoop namenode -format命令时,出现未知的主机名. 问题原因: 出现这种问题的原因是Hadoop在格式化HDFS的时候,通过hostname命令获取到的主机名与/etc/hosts文件中进行映射的时候,没有找到. 解决方案: 1.修改/etc/hosts内容 2.

  • Linux下安装Oracle 11g出现prvf-0002错误解决办法

    Linux下安装Oracle 11g出现prvf-0002错误解决办法 Linux下安装Oracle 11g,有时会提示一个错误: 提示是不能获取本地节点名. PRVF意思应是安装前的检查,没有查出缩写,我猜是Pre-Requisite VeriFication的缩写.若错了还请指正. 使用oerr工具看看, oerr prvf 0002 0002, ERROR_LOCAL_NODENAME_NOT_FOUND, "Could not retrieve local nodename"

随机推荐