Spring JdbcTemplate # queryForList(String sql , Class<T> elementType)

      

           一直用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,有兴趣的可以看下。

       update: List<T> result = jdbcTemplate.query(sql.toString(), new Object[] {queryPara}, new BeanPropertyRowMapper<T>(T.class))  可以用这个  于20160115


评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值