首页 > 其他分享 >Bug库____org.springframework.jdbc.IncorrectResultSetColumnCountException: Incorrect column count: exp

Bug库____org.springframework.jdbc.IncorrectResultSetColumnCountException: Incorrect column count: exp

时间:2023-09-13 12:34:23浏览次数:43  
标签:Incorrect count jdbc 封装 args queryForList sql rm queryForObject


Bug:使用到了spring的jdbctemplate模板 使用到以下

template.queryForObject(sql, requiredType)

template.queryForList(sql, elementType, args)

Bug库____org.springframework.jdbc.IncorrectResultSetColumnCountException: Incorrect column count: exp_sql

报以下错误

org.springframework.jdbc.IncorrectResultSetColumnCountException: Incorrect column count: expected 1, actual 3

检查完自己的代码和需要传入的参数类型确定没有传错

====先百度发现出现这种问题的真不少

==解决办法


RowMapper<User> rm = ParameterizedBeanPropertyRowMapper.newInstance(User. 
 class 
 ); 

 
 
 User user = (User)  
 this 
 .jdbcTemplate.queryForObject("SELECT * FROM USER WHERE ID = 1", rm);


封装上一次RowMapper使用

jdbcTemplate.queryForObject( 
 sql 
 , rm);

==封装完测试正常

查看源码 问什么会这样

@Override
public <T> T queryForObject(String sql, Class<T> requiredType, Object... args) throws DataAccessException {
return queryForObject(sql, args, getSingleColumnRowMapper(requiredType));
}

他返回的事单个列值得对象 就是一列值

所有会出现 期待 1 actual 实际是 3列 这种问题 真的好想说shit  what,s the fuck tools?

===================queryForList的解决方法

解决:

1.不在调用queryForList而是直接调用query然后调用Spring的参数封装rowmapper

@Override
public <E> List<E> findList(String sql, Object[] args, Class<E> clazz) {
RowMapper<E> rm = ParameterizedBeanPropertyRowMapper.newInstance(clazz);
return template.query(sql, args, rm);
}

2.自己封住下rowmapper 不在调用queryForList自己封装rowmapper

可以去如下地址查看实现方式:

地址代码快照:

Bug库____org.springframework.jdbc.IncorrectResultSetColumnCountException: Incorrect column count: exp_bc_02

Bug库____org.springframework.jdbc.IncorrectResultSetColumnCountException: Incorrect column count: exp_bc_03

Bug库____org.springframework.jdbc.IncorrectResultSetColumnCountException: Incorrect column count: exp_bc_04

标签:Incorrect,count,jdbc,封装,args,queryForList,sql,rm,queryForObject
From: https://blog.51cto.com/ratelcloud/7454333

相关文章

  • BUG(Spring Framework JdbcTemplate) org.springframework.jdbc.IncorrectResultSetCo
    一.SpringFramework queryForObject问题1.spring4.0之前使用使用jdbctemplate的queryForObject(Stringsql,Object[]args,RowMapper<T>rowMapper)直接放入class类型会报错org.springframework.jdbc.IncorrectResultSetColumnCountException:Incorrectcolumncount:expec......
  • JDBC 连接 MySQL 报错 Unknown system variable ‘query_cache_size‘
    官方说法:ThequerycacheisdeprecatedasofMySQL5.7.20,andisremovedinMySQL8.0.Deprecationincludesquery_cache_size.querycache在MySQL5.7.20已经过时了,并且在MySQL8.0版本中被移除了。所以要更新mysql驱动版本<dependency><groupId>mysql</groupId......
  • Debezium系列之:获取Oracle JDBC驱动程序和XStream API文件
    Debezium系列之:获取OracleJDBC驱动程序和XStreamAPI文件一、背景二、详细步骤1.下载OracleClient包2.解压缩3.复制ojdbc8.jar和xstreams.jar文件4.创建环境变量三、XStream连接器属性一、背景DebeziumOracle连接器需要OracleJDBC驱动程序(ojdbc8.jar)才能连接到Oracl......
  • Apache IoTDB开发系统之JDBC
    DependenciesJDK>=1.8Maven>=3.1PackageonlyJDBCprojects在根目录中执行以下命令:mvncleanpackage-pljdbc-am-DskipTests如何在本地maven存储库中安装在根目录中:mvncleaninstall-pljdbc-am-Dmaven.test.skip=true将IoTDBJDBC与Maven结合使用<dependencies......
  • 【题解】CF1830B The BOSS Can Count Pairs
    你考虑,我们观察数据范围,发现可以是\(O(n\sqrtn)/O(n\logn)\)的,我们又看到乘法,便有几个大概的想法:数论分块\(O(\sqrtn)\)枚举其中一个乘数还有什么……(笔者学识浅陋,读者可以帮忙补充)我们可以找到两种\(O(n^2)\)做法:\(O(n^2)\)枚举数对\((i,j)\)然后进行判断。......
  • Java实现关系型数据库工具类JdbcUtils系列九:通用DAO
    Java实现关系型数据库工具类JdbcUtils系列九:通用DAO一、创建对应数据库表的实体类二、数据库连接池Druid工具类三、DAO类四、BaseDAO五、DatabaseInfoDao六、通用DAO测试类一、创建对应数据库表的实体类数据库表结构CREATETABLE`databaseInfo`(`id`bigint(11)NOTNULLAU......
  • [ABC319G] Counting Shortest Paths
    [ABC319G]CountingShortestPathsAtcoder:[ABC319G]CountingShortestPaths洛谷:[ABC319G]CountingShortestPathsProblem经典问题:求补图的最短路,边权均为\(1\),并顺带求出\(1\ton\)最短路的数量。\(n\le2\times10^5\)。Solution每次从队列中把最早遍历到的节点......
  • 关于IDEA里面连接数据库找不到org.apache.hive.jdbc.Driver的问题
    问题描述昨天就很顺利地连接上了,今天直接找不到我的class了,吓出一身冷汗;问题解决后来发现导入的jar包的路径不太对,突然想起来jar包的位置被我移动了,但是IDEA里面并没有改变原来的位置,找不到jar包的问题,重新将jar包的路径浏览一遍即可解决;......
  • Springboot项目中pom.xml配置文件无法解析下载oracl数据库解决办法(Cannot resolve com
    网上说是因Oracle的版权问题,导致maven下载不下来ojdbc各个版本的jar包。就会报错Cannotresolvecom.oracle:ojdbc6:11.2.0.1.0 经过一番百度,找到了一个适用的解决方法,如下操作即可:1.在终端或客户端机器上找到oracle安装驱动目录:例如:E:\myorcl\product\11.2.0\dbhome_1\j......
  • Flink 1.17教程:输出算子之输出到MySQL(JDBC)
    输出到MySQL(JDBC)写入数据的MySQL的测试步骤如下。(1)添加依赖添加MySQL驱动:mysqlmysql-connector-java8.0.27官方还未提供flink-connector-jdbc的1.17.0的正式依赖,暂时从apachesnapshot仓库下载,pom文件中指定仓库路径:apache-snapshotsapachesnapshotshttps://repository.a......