JDBC Template 查询SQL中包含sum(), count()等函数时结果集的接收

来源:互联网 发布:善得网络 编辑:程序博客网 时间:2024/05/21 17:46

最近在做的项目使用了JDBC Template来操作数据库,自定义了很多DTO类来接受query的结果。突然项目需求多了一个需要求和的结果:

@Override<span></span>public List<VipAwardDTO> getAward(int vipLv) {<span></span>String sql = "SELECT " + Vips.COLUMN_GIFT_TYPE + ", SUM("<span></span>+ Vips.COLUMN_GIFT_CNT + ") FROM " + Vips.TABLE_NAME<span></span>+ " WHERE " + Vips.COLUMN_VIP_LV + " <=?" + " GROUP BY "<span></span>+ Vips.COLUMN_GIFT_TYPE;<span></span>return this.globalMasterJdbcTemplate.query(sql,<span></span>new BeanPropertyRowMapper<VipAwardDTO>(VipAwardDTO.class),<span></span>vipLv);<span></span>}
结果集中怎么都没有sum()的结果。后来查了一下技术文章恍然大悟:
@Overridepublic List<VipAwardDTO> getAward(int vipLv) {String sql = "SELECT " + Vips.COLUMN_GIFT_TYPE + ", SUM("+ Vips.COLUMN_GIFT_CNT + ") <span style="color: rgb(255, 0, 0);">AS " + Vips.COLUMN_GIFT_CNT</span>+ " FROM " + Vips.TABLE_NAME + " WHERE " + Vips.COLUMN_VIP_LV+ " <=?" + " GROUP BY " + Vips.COLUMN_GIFT_TYPE;return this.globalMasterJdbcTemplate.query(sql,new BeanPropertyRowMapper<VipAwardDTO>(VipAwardDTO.class),vipLv);}
给sum()的结果加个别名就OK了,但是一定要和你的DTO类中定义的field名字一致才可以正确的接受到query的结果!
0 0