Spring JdbcTemplate的queryForList(String sql , Class<T> elementType)易错使用--转载
原文地址:
http://blog.csdn.net/will_awoke/article/details/12617383
一直用ORM,今天用JdbcTemplate再次抑郁了一次。
首先看下这个方法:
乍一看,我想传个泛型T(实际代码执行中,这个T可以是我自定义的一个Bean),然后就能返回个List<T>,也即泛型的集合(纯ORM思想啊!殊不知又挖了个大坑~)
于是乎,出现下面代码:
- List<Student> list = jdbcTemplate.queryForList(sql, Student.class);
一执行,发现出异常了:
ERROR [com.ruhuiyun.studentmanager.aop.LogAdvice] - org.springframework.jdbc.IncorrectResultSetColumnCountException: Incorrect column count: expected 1, actual 8:Incorrect column count: expected 1, actual 8
异常很明了,需要一个,给人家整成了八个,也就是人家不是存List的。甚为蹊跷,后一查,发现不是这样的,又跑偏了~
原来这个T,只支持Integer.class String.class 这种单数据类型的,自己定义的Bean不支持。所以我这ORM的想法over了。
感情如果有封装成某个对象的需求,还得自己动手 。
这个JdbcTemplate还真是无力吐槽~ 彷佛回来了上古时期~!
update :写了一个轮子,用于 Spring JdbcTemplate 查询结果集Map反向生成Java实体, http://blog.csdn.net/will_awoke/article/details/27683703,有兴趣的可以看下。
参考文章:
http://forum.spring.io/forum/spring-projects/data/122343-comparison-between-queryforlist-and-query-working-with-a-list-of-objects
相关文章
- 【Spring Boot】Spring Boot之两种引入spring boot maven依赖的方式
- spring: spittr实例 构建简单的web应用
- spring boot: spring Aware的目的是为了让Bean获得Spring容器的服务
- Spring异常解决 java.lang.NullPointerException,配置spring管理hibernate时出错
- springcloud2.0以上版本_eureka控制台显示_找不到${spring.cloud.client.ipAddress}_没有显示成IP地址
- Spring异常解决 java.lang.NullPointerException,配置spring管理hibernate时出错
- 【学习总结】SQL的学习-1-初识数据库与sql
- spring boot:在项目中引入第三方外部jar包集成为本地jar包(spring boot 2.3.2)
- spring boot多环境配置
- Spring IOC快速入门
- Spring读源码系列番外篇04----类型转换--上---老旧的PropertyEditor
- set Spring log level to debug so that we can learn more from log
- spring 之jdbcTemplate使用
- Sql:成功解决将sql输出的datetime时间格式转为常规格式
- 高效实现Web开发:掌握Spring Boot 2高级模块Thymeleaf的神奇妙用
- SQL基础【二十、索引】(超细致版本,前理论,后实践,应对sql面试绰绰有余)
- Spring MVC DispatcherServlet改造为 CSE RestServlet 常见问题汇编
- 学习Spring Boot:(十四)spring-shiro的密码加密
- Spring Boot 应用监控: Java获取 CPU,内存, JVM 内部运行状况代码
- Spring实战——通过Java代码装配bean
- 【Spring注解驱动开发】如何按照条件向Spring容器中注册bean?这次我懂了!!
- SQL注入 Sqli-labs-Less-21(笔记)——还是回显注入 使用union select即可 但是要注意sql括号闭合 也可以报错注入
- spring cloud 的hystrix 熔断器 和feign 调用的使用
- sql的介绍——SQL Server数据库管理系统