首页 > 代码库 > MyBatis处理一行数据-MyBatis使用sum语句报错-MyBatis字段映射-遁地龙卷风

MyBatis处理一行数据-MyBatis使用sum语句报错-MyBatis字段映射-遁地龙卷风

(-1)写在前面

我用的是MyBatis 3.2.4

(0) 编程轶事

select sum(value) ,sum(value2)  from integral_list where  MemberId = #{0} and operate = 1 and  Year(AddTime) = #{1} and ChannelType = #{2} and ChannelCode = #{3}

我用的sqlyoug显示的的字段名分别是sum(value) 、sum(value2)

我在xml文件中返回值类型是实体类的别名,由于mybatis根据数据库字段名找到实体类字段的set方法确认这个字段是否存在

如果你接受返回值的是一个实体类,找不到一个字段将导致实体类被赋null

如果你接受返回值的是一个实体类list,找不到一个字段将导致list长度为1,但取出来的是null,

我将语句改为如下便正确了

select sum(value) as ‘value‘,sum(value2) as ‘value2‘ from integral_list where  MemberId = #{0} and operate = 1 and  Year(AddTime) = #{1} and ChannelType = #{2} and ChannelCode = #{3}
顺便说一下如何接收返回值,因为执行语句返回的结果集是一行数据两个字段,可以用hashmap

配置文件关键部分为:

<select resultType="hashmap">

实体类映射xml文件关键部分为:

HashMap<String, BigDecimal>

得到的结果结构为

key   value

“value” 28.0

“value2” 8.0

 

 

对于加班我的感触是:以前花钱学习,现在给钱学习。

技术分享

技术分享

MyBatis处理一行数据-MyBatis使用sum语句报错-MyBatis字段映射-遁地龙卷风