首页 > 其他分享 >BUG(Spring Framework JdbcTemplate) org.springframework.jdbc.IncorrectResultSetColumnCountException:

BUG(Spring Framework JdbcTemplate) org.springframework.jdbc.IncorrectResultSetColumnCountException:

时间:2023-09-13 11:06:41浏览次数:49  
标签:jdbc BeanPropertyRowMapper Spring args results IncorrectResultSetColumnCountExce


一.Spring Framework queryForObject 问题

1.spring4.0之前使用使用jdbctemplate 的queryForObject(String sql, Object[] args, RowMapper<T> rowMapper)

直接放入class类型会报错

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

解决办法 封装一层 ParameterizedBeanPropertyRowMapper即可

2.spring framework 4.0之后的queryForObject 使用的是BeanPropertyRowMapper.newInstance(SysUser.class);也就意味着ParameterizedBeanPropertyRowMapper已经被BeanPropertyRowMapper取代

@Override
public <T> T queryForObject(String sql, Object[] args, RowMapper<T> rowMapper) throws DataAccessException {
   List<T> results = query(sql, args, new RowMapperResultSetExtractor<T>(rowMapper, 1));
   return DataAccessUtils.requiredSingleResult(results);
}

 

标签:jdbc,BeanPropertyRowMapper,Spring,args,results,IncorrectResultSetColumnCountExce
From: https://blog.51cto.com/ratelcloud/7452514

相关文章

  • 使用注解实现spring核心
    使用注解实现springIOC注解方式步骤使用注解定义Bean通过注解实现不同层级Bean@Controller:用于标注控制器类@Service:用于标注业务类@Repository:用于标注DAO类@Component:定义非以上所属层级的类使用注解实现Bean的注入@Autowired//相当于xml文件配置中的:<propertyname="user......
  • SpringBoot+Mybatis三级查询
    一、概述现有一个需求:查询视频详情。对应三张表,视频表、章节列表、集列表。一个视频对应多个章节,一个章节对应多集视频。请根据视频id查询视频详情,并把视频的章节列表,章节中的集列表都带出来。SpringBoot和MyBatis-plus说明:<!--根模块继承了SpringBoot,子模块也跟着继......
  • Spring HTTP Invoker
    参考:https://blog.csdn.net/asdluoliu/article/details/112847699概念SpringHTTPInvoker一种JAVA远程方法调用框架实现,原理与JDK的RMI基本一致,所以我们先跟其它JAVA远程方法调用实现做下简单比较。RMI:使用JRMP协议(基于TCP/IP),不允许穿透防火墙,使用JAVA序列化方式,使用于任何......
  • springboot日志配置
    配置文件使用xml配置日志保存(并不需要pom配置slf4j依赖,starter里面已经配置了依赖了)在项目的resources目录下创建一个【logback-spring.xml】日志配置文件名称只要是一logback开头就行,测试使用log.xml并不会生成日志。合法名称:logback.xml、logback-spring.xml备注:要配置l......
  • SpringBoot项目启动报错:An incompatible version [1.1.22] of the Apache Tomcat Nati
    问题解释:“安装了不兼容的ApacheTomcat原生库版本[1.1.22],而Tomcat需要版本[1.2.14]”解决方法:①打开网页 http://archive.apache.org/dist/tomcat/tomcat-connectors/native/②        ③        ④     ......
  • 【Spring Boot】Thymeleaf 模板引擎
     Thymeleaf组成:标签+表达式,标签是Thymeleaf的语法结构,而表达式就是语法里的内容实现  pom.xml添加依赖包<!--模板引擎Thymeleaf依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-b......
  • Spring Boot构建web项目01
    配置:破解版IDEA2019.3.3Maven--3.6.3java--1.8(8)jdk--8  打开IDEA,new一个project,选择SpringInitializr 改写maven管理和java版本8 选择web项目    添加指定父级工程信息和java版本依赖<modelVersion>4.0.0</modelVersion><parent><gro......
  • springcloud日常学习
    一、 Feign客户端接口调用1. 分析与介绍   之前的消费者调用服务提供者是通过RestTemplate + Ribbon组合实现负载均衡进行调用   如果在消费者客户端能够通过面向接口编程的思想去实现对服务提供者进行调用,就更加接近软件工程的开发思想,Feign就可以实现。微服务之间的调......
  • 优雅地切换SpringCloud注册中心
    背景做项目时偶尔需要切换注册中心,虽然切换很简单,但如果项目研发伊始没有考虑切换的问题,就需要去拉分支,做配置,不够优雅。springCloud支持很多注册中心,这里只介绍三个常用的:Eureka、Nacos、Consul原理利用mavenprofile来处理不同的注册中心以及依赖;pom.xml样例详见50-105行......
  • Spring源码分析(六)容器的扩展点(BeanFactoryPostProcessor)
    之前的文章我写了BeanDefinition的基本概念和合并,其中很对次提到了容器的扩展点,这篇文章就写这方面的知识。这部分的内容主要涉及到官网的1.8小节。按照官网介绍来说,容器的扩展点可以分为三类,BeanPostProcessor,BeanFactoryPostProcessor以及FactoryBean。本文主要讲BeanFactoryPost......