调用 jdbcTemplate.queryForList 时出现错误 spring-org.springframework.jdbc.IncorrectResultSetColumnCountException

查找到解决方法: http://www.cnblogs.com/wumian/articles/2012-10-25-2056.html

调用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);

时间: 2024-11-08 09:03:55

调用 jdbcTemplate.queryForList 时出现错误 spring-org.springframework.jdbc.IncorrectResultSetColumnCountException的相关文章

错误:org.springframework.jdbc.support.SQLErrorCodesFactory - SQLErrorCodes loaded

使用spring+mybatis整合时报错:org.springframework.jdbc.support.SQLErrorCodesFactory - SQLErrorCodes loaded 错误原因是: 1.参数与数据库字段不匹配,可能是映射文件sql语句写错了,字段名与数据库中的字段名不匹配. 2.也有可能是传递的参数超过了数据库字段限定的长度. 3.也有可能是resultMap映射字段不对. 原文地址:https://www.cnblogs.com/jasonboren/p/1067

iOS调用微信SDK时遇到错误

今天把微信SDK_1.5加入我的程序中(我的开发环境是Xcode6.4),编译时报错: Undefined symbols for architecture x86_64:   "operator delete[](void*)", referenced from:       +[WeChatApiUtil EncodeBase64:] in libWeChatSDK.a(WeChatApiUtil.o)       +[WeChatApiUtil NsDataEncodeBase6

解决WCF调用时出现错误:“创建MTOM消息读取器时出错”

如题,查询一个数据集, 存储过程返回如:select * from B 中间层定义  public DataSet GetTable(string 查询条件); 客户端定义  DataSet ds = wcfClient.GetTable("") 以前一直正常着,查询也很快速,这两天不知修改到哪了,所有的查询如果返回记录较大时(100条左右),客户端就会出现服务端返回的异常错误"创建MTOM消息读取器时出错" 客户端 app.config 配置如下 <syst

Axis 调用.net WebServic接口出现:验证消息的安全性时发生错误

解决方法:call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP12_CONSTANTS); 参考:http://www.blogjava.net/andy199999/ 异常内容: AxisFault faultCode: {http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}InvalidSecurity faultS

JAVA调用mysql数据操作时出现错误:impossible to write to binary log since statement is in row format and BINLOG_FORMAT = STATEMENT.&#39;

使用mysql做持久化报错:Cannot execute statement: impossible to write to binary log since BINLOG_FORM ActiveMQ中如果使用mysql innodb的同时,开启了binlog,那么在ack消息的时候,日志里就可会报错:java.sql.SQLException: Cannot execute statement: binlogging impossible since BINLOG_FORMAT = STATE

调用具体webservice方法时时报错误:请求因 HTTP 状态 503 失败: Service Temporarily Unavailable

添加web引用会在相应项目的app.cofig文件中产生如下代码: <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >            <section n

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

在Spring中基于JDBC进行数据访问时如何控制超时

超时分类 超时根据作用域可做如下层级划分: Transaction Timeout > Statement Timeout > JDBC Driver Socket Timeout Transaction Timeout指一组SQL操作执行时应在设定的时间内完成(提交或回滚),否则将引发超时.它的值应大于 N(语句数) * Statement Timeout Statement Timeout指完成单条SQL语句执行的最大允许时间.它的值应小于JDBC Driver Socket Timeou

ssh下:系统初始化实现ServletContextListener接口时,获取spring中数据层对象无效的问题

想要实现的功能:SSH环境下,数据层都交由Spring管理:在服务启动时,将数据库中的一些数据加载到ServletContext中缓存起来. 系统初始化类需要实现两个接口: ServletContextListener,系统初始化时调用contextInitialized方法缓存数据: ApplicationContextAware,获取Spring的ApplicationContext对象,以获取spring容器管理的service对象. 系统初始化类如下: 1 package com.liz