Spring JdbcTemplate的queryForList(String sql , Class elementType)易錯使用--轉載

原文地址:java

http://blog.csdn.net/will_awoke/article/details/12617383spring

 一直用ORM,今天用JdbcTemplate再次抑鬱了一次。sql

           首先看下這個方法:ui

          乍一看,我想傳個泛型T(實際代碼執行中,這個T能夠是我自定義的一個Bean),而後就能返回個List<T>,也即泛型的集合(純ORM思想啊!卻不知又挖了個大坑~)spa

          因而乎,出現下面代碼:.net

 

[java]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
  1. List<Student> list = jdbcTemplate.queryForList(sql, Student.class);  


          一執行,發現出異常了:code

 

         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的。甚爲蹊蹺,後一查,發現不是這樣的,又跑偏了~blog

        原來這個T,只支持Integer.class String.class 這種單數據類型的,本身定義的Bean不支持。因此我這ORM的想法over了。ip

 
        感情若是有封裝成某個對象的需求,還得本身動手 。

 

        這個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

相關文章
相關標籤/搜索