通过实测: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值
没做运算
做了运算
做了聚合运算
int
int
int
int
Map
int
long
BigDecimal
List
int
long
BigDecimal
为什么会呈现BigDecimal类型呢,
通过下面的测试:
能够得出
用的是Map,List>接管,
sql语句中int类型的值做了聚合运算,
满足上述两个条件。
java中去取value的值就会变成BigDecimal 类型