用的是Map,List>接收,
sql语句中int类型的值做了聚合运算,
满足上述两个条件。
java中去取value的值就会变成BigDecimal 类型
经过实测:mybatis 中的sql语句int类型 java接收的几种情况。
实测案例:
1.用resultType="int" (返回类型用int)

1.1 如果 resultType="int", id 没做运算,
select id from ting_cmdb_physical_equipment where id=2897;
显示结果,java可以用 int 接收。

1.2 如果 resultType="int", id 做运算,
select id-1 as id
from ting_cmdb_physical_equipment where id=2897;
显示结果:java可以用int接收

1.3 id 做聚合运算
select sum(id) as id
from ting_cmdb_physical_equipment where id=2897;
运算结果:java可以用int接收

2.用resultType="map"(返回类型用Map)

2.1 id没做运算
select id from ting_cmdb_physical_equipment where id=2897;
运算结果:java可以用int 接收

2.2 id做运算
select id-1 as id
from ting_cmdb_physical_equipment where id=2897;
运算结果:java要用long类型接收

2.3 id做聚合函数运算
select sum(id) as id
from ting_cmdb_physical_equipment where id=2897;
运算结果:java用BigDecimal接收

3.resultType="map" (返回类型用list>)

3.1 id没做运算
select id as id
from ting_cmdb_physical_equipment where id=2897;
运算结果:java可以用int接收

3.2 id做运算
select id-1 as id
from ting_cmdb_physical_equipment where id=2897;
运算结果java可以用long接收

3.3 id做聚合运算
select sum(id) as id
from ting_cmdb_physical_equipment where id=2897;
运算结果:java可以用BigDecimal接收

总结类型\int值没做运算做了运算做了聚合运算intintintint
MapintlongBigDecimal
ListintlongBigDecimal
为什么会出现BigDecimal类型呢,
本文探讨了在MyBatis框架下,不同SQL查询结果如何转换为Java中的各种数据类型,特别是针对int类型数据在不同场景下的转换行为进行了详细的实验验证。
843

被折叠的 条评论
为什么被折叠?



