mysql int和bigdecimal_mysql的 int 类型,刨析返回类型为BigDicemal 类型的奇怪现象

经过实测:mybatis 中的sql语句int类型 java接收的几种情况。

1.用resultType="int" (返回类型用int)

e2023725f445243a8c1945ab2ab65cac.png

1.1 如果 resultType="int", id 没做运算,

select id from ting_cmdb_physical_equipment where id=2897;

复制代码

显示结果,java可以用 int 接收。复制代码

41dfbf09c80b2a57ac8884175a7a8cab.png

1.2 如果 resultType="int", id 做运算,

select id-1 as id

from ting_cmdb_physical_equipment where id=2897;

复制代码

显示结果:java可以用int接收复制代码

453570eddc0d7a3731de5ebff9dd3e48.png

1.3 id 做聚合运算

select sum(id) as id

from ting_cmdb_physical_equipment where id=2897;

复制代码

运算结果:java可以用int接收复制代码

a766102bb3cda5b0d70b577decd2bdd6.png

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

80b4732d2aca1a2612b2d8449e11348b.png

2.1 id没做运算

select id from ting_cmdb_physical_equipment where id=2897;

复制代码

运算结果:java可以用int 接收复制代码

7e42cfa9f1d75971d9750d4cae2c51cd.png

2.2 id做运算

select id-1 as id

from ting_cmdb_physical_equipment where id=2897;

复制代码

运算结果:java要用long类型接收复制代码

0c65df47e60e89b93a61324bf882e5de.png

2.3 id做聚合函数运算

select sum(id) as id

from ting_cmdb_physical_equipment where id=2897;

复制代码

运算结果:java用BigDecimal接收复制代码

e0031278e101b39aa234b5cd6f9d984f.png

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

8c68c219388c79c0f9182d37a7c4d541.png

3.1 id没做运算

select id as id

from ting_cmdb_physical_equipment where id=2897;

复制代码

运算结果:java可以用int接收复制代码

b0ee717d20a5371eda1dcbe48285ca89.png

3.2 id做运算

select id-1 as id

from ting_cmdb_physical_equipment where id=2897;

复制代码

运算结果java可以用long接收复制代码

3ad8c4ab0d38c553957e34996cdf95a6.png

3.3 id做聚合运算

select sum(id) as id

from ting_cmdb_physical_equipment where id=2897;

复制代码

运算结果:java可以用BigDecimal接收复制代码

3a17f7804ca7f28fa86d776a313177e2.png

总结

类型\int值没做运算做了运算做了聚合运算intintintintMapintlongBigDecimalListintlongBigDecimal

为什么会出现BigDecimal类型呢,

经过上面的测试:

可以得出用的是 Map ,List>接收,

sql语句中int类型的值做了 聚合运算 ,

满足上述两个条件。

java中去取value的值就会变成 BigDecimal 类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值