调用 jdbcTemplate.queryForList 时出现错误 spring-org.springframework.jdbc.IncorrectResultSetColumnCountException
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html
内部邀请码:C8E245J (不写邀请码,没有现金送)
国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为“中国PE第一股”,市值超1000亿元。 
------------------------------------------------------------------------------------------------------------------------------------------------------------------
查找到解决方法: http://www.cnblogs.com/wumian/articles/2012-10-25-2056.html
【推荐看看】 http://my.oschina.net/u/218421/blog/38598
调用spring jdbc接口:
User user = (User) this.jdbcTemplate.queryForObject(                "SELECT * FROM USER WHERE ID = 1", User.class); | 
报错如下:
Exception in thread "main" org.springframework.jdbc.IncorrectResultSetColumnCountException: Incorrect column count: expected 1, actual 4    at org.springframework.jdbc.core.SingleColumnRowMapper.mapRow(SingleColumnRowMapper.java:87)    at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:92)    at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:1)    at org.springframework.jdbc.core.JdbcTemplate$1QueryStatementCallback.doInStatement(JdbcTemplate.java:445)    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:395)    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:455)    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:463)    at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:471)    at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:476)    at com.ylp.dao.UserDao.getById(UserDao.java:45)    at com.ylp.dao.Test.main(Test.java:17) | 
大概意思是:查出的数据有4列,它把jdbc.queryForObject("SELECT * FROM USER WHERE ID = 1", User.class);中的第一列转换成User.class,所以 expected 1, actual 6,预期1列,但查出来的数据有4列
修改:
RowMapper<User> rm = ParameterizedBeanPropertyRowMapper.newInstance(User.class);        User user = (User) this.jdbcTemplate.queryForObject(                "SELECT * FROM USER WHERE ID = 1", rm); | 
提示:以上结论在 spring 4.x 上行不通,主要是 queryForObject 模板方法针对的结果集是“一列”的时候,并且支持的是常见类型(Integer.class)等
再次查找资料,在官方的 api 中,仅仅提到:
“elementType - the required type of element in the result list (for example, Integer.class)”
哪如果我想要返回一个 List<T> 的列表对象不行吗?查找资料,发现如下文章将的比较好:
【推荐看看】 http://my.oschina.net/u/218421/blog/38598
改用如下代码实现即可:
return (new DBUtility()).getJdbcDao().query(sql, new RowMapper<Task>() {
            public Task mapRow(ResultSet arg0, int arg1) throws SQLException {
                Task t = new Task();
                t.setTaskId(arg0.getLong("taskId"));
                t.setTaskName(arg0.getString("taskName"));
                t.setTaskDescription(arg0.getString("taskDescription"));
                t.setTaskPriority(arg0.getString("taskPriority"));
                t.setTaskStatus(arg0.getString("taskStatus"));
                return t;
            }
        });
OK,此时才算解决问题。
spring jdbc 版本: 4.1.1.RELEASE
调用 jdbcTemplate.queryForList 时出现错误 spring-org.springframework.jdbc.IncorrectResultSetColumnCountException的更多相关文章
- 错误:org.springframework.jdbc.support.SQLErrorCodesFactory - SQLErrorCodes loaded
		
使用spring+mybatis整合时报错:org.springframework.jdbc.support.SQLErrorCodesFactory - SQLErrorCodes loaded 错 ...
 - Spring JDBC模板类—org.springframework.jdbc.core.JdbcTemplate(转)
		
今天看了下Spring的源码——关于JDBC的"薄"封装,Spring 用一个Spring JDBC模板类来封装了繁琐的JDBC操作.下面仔细讲解一下Spring JDBC框架. ...
 - 使用Spring Boot操作Hive JDBC时,启动时报出错误:NoSuchMethodError: org.eclipse.jetty.servlet.ServletMapping.setDef
		
使用Spring Boot操作Hive JDBC时,启动时报出错误:NoSuchMethodError: org.eclipse.jetty.servlet.ServletMapping.setDef ...
 - Incorrect column count: expected 1, actual 5,JdbcTemplate queryForList 出错
		
spring JdbcTemplate queryForList 出错 Incorrect column count: expected 1, actual 5 >>>>&g ...
 - 【转】在Spring中基于JDBC进行数据访问时怎么控制超时
		
http://www.myexception.cn/database/1651797.html 在Spring中基于JDBC进行数据访问时如何控制超时 超时分类 超时根据作用域可做如下层级划分: Tr ...
 - 【已解决】Https请求——基础连接已经关闭 发送时发生错误
		
本人在做商用项目的推送消息功能时,借助第三方推送服务.这里避免有打广告的嫌疑,就不报名字了.由于是通过调用API接口,所以Post方法是自己写的,但是在开发环境是可以正常推送的,但是一上线就出各种问题 ...
 - 分析案例:界面提示“基础链接已经关闭:接收时发生错误”----本质为StackOverflow
		
问题描述: 一个业务复杂.执行时间很长的功能,经常报出“基础链接已经关闭:接收时发生错误”,很是蹊跷... 问题分析: 首先,查阅应用服务器的系统日志,发现问题发生时总是会伴随着w3wp进程崩溃的错误 ...
 - 实现在GET请求下调用WCF服务时传递对象(复合类型)参数
		
WCF实现RESETFUL架构很容易,说白了,就是使WCF能够响应HTTP请求并返回所需的资源,如果有人不知道如何实现WCF支持HTTP请求的,可参见我之前的文章<实现jquery.ajax及原 ...
 - ssh下:系统初始化实现ServletContextListener接口时,获取spring中数据层对象无效的问题
		
想要实现的功能:SSH环境下,数据层都交由Spring管理:在服务启动时,将数据库中的一些数据加载到ServletContext中缓存起来. 系统初始化类需要实现两个接口: ServletContex ...
 
随机推荐
- TCP可靠传输和拥塞控制
			
1.TCP的可靠传输 tcp的可靠传输主要靠 来自接收方的确认报文 和 超时重传. 发出报文,计时器开始计时,在规定超时时间内未收到确认报文则重新发送. 注意:发送报文都留一个副本,如果收到确认报文就 ...
 - beego学习笔记(4):开发文档阅读(4)
			
beego.Run() 这个运行后, 1)解析配置文件,也就是conf目录下的. 2)判断是否开启session,并作相应的工作 3)执行用户的hookfunc. 4)是否编译模板 5)是否开启文档功 ...
 - appium---【Mac】Appium-Doctor提示WARN:“applesimutils cannot be found”解决方案
			
报错提示“ applesimutils cannot be found”截图如下: 解决方案: brew tap wix/brew brew install applesimutils 再次执行app ...
 - PHP之数组(遍历顺序)
			
作者: Laruence( ) 本文地址: http://www.laruence.com/2009/08/23/1065.html PHP的数组, 如果用foreach来访问, 遍历的顺序是固定 ...
 - 转:xxe attack学习
			
小结 1.http包发送类型:content-type:text/xml2.xxe漏洞非常危险, 因为此漏洞会造成服务器上敏感数据的泄露,和潜在的服务器拒绝服务攻击.要去校验DTD(document ...
 - 【拓扑排序或差分约束】Guess UVALive - 4255
			
题目链接:https://cn.vjudge.net/contest/209473#problem/B 题目大意:对于n个数字,给出sum[j]-sum[i](sum表示前缀和)的符号(正负零),求一 ...
 - open -python操作文件
			
一打开文件 二操作文件 三关闭文件 open(文件,模式,编码),打开文件----->0101010(以二进制的方式打开)------>编码(open默认utf-8编码)------> ...
 - hdu 1253
			
D - 胜利大逃亡 Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit St ...
 - 【BZOJ 3136】 3136: [Baltic2013]brunhilda  (数论?)
			
3136: [Baltic2013]brunhilda Time Limit: 40 Sec Memory Limit: 128 MBSubmit: 238 Solved: 73[Submit][ ...
 - asp.net绝对与相对路径
			
对于asp.net 路径的问题,闲心有很多人和我一样,只是知道一点,理解并不深刻.下面我就来整理一下相路径和绝对路径的知识. 绝对路径: 每个网页都有一个唯一的地址,它就是该网页的绝对路径.绝对路径提 ...