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

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

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

f17e976017e2b42f201c4cfc1230cc05.png

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

select id from ting_cmdb_physical_equipment where id=2897;

复制代码

显示结果,

java可以用 int 接收。

复制代码

6eaad51a838a86239f7269d7f3fd2cc8.png

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

select id-1 as id

from ting_cmdb_physical_equipment where id=2897;

复制代码

显示结果:

java可以用int接收

复制代码

8565ea2520a717c7422f5da49d3dae32.png

1.3 id 做聚合运算

select sum(id) as id

from ting_cmdb_physical_equipment where id=2897;

复制代码

运算结果:

java可以用int接收

复制代码

23524b208b0f7ff59ccce7b21431cd7a.png

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

7cb983606a0d8595d7cc846f80964044.png

2.1 id没做运算

select id from ting_cmdb_physical_equipment where id=2897;

复制代码

运算结果:

java可以用int 接收

复制代码

01855eb2541bb3b24a3e4eb87e592f48.png

2.2 id做运算

select id-1 as id

from ting_cmdb_physical_equipment where id=2897;

复制代码

运算结果:

java要用long类型接收

复制代码

d9a1b3a53c6d054753e28be84065d524.png

2.3 id做聚合函数运算

select sum(id) as id

from ting_cmdb_physical_equipment where id=2897;

复制代码

运算结果:

java用BigDecimal接收

复制代码

e83100c7572a0c772779bdd67051fe18.png

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

91a7eaf77bdaec70792cf747fcb849ea.png

3.1 id没做运算

select id as id

from ting_cmdb_physical_equipment where id=2897;

复制代码

运算结果:

java可以用int接收

复制代码

990840d1c4ddc6c8620439af8e3795e0.png

3.2 id做运算

select id-1 as id

from ting_cmdb_physical_equipment where id=2897;

复制代码

运算结果

java可以用long接收

复制代码

9e4fef46b3feeab97438df747d85f3b4.png

3.3 id做聚合运算

select sum(id) as id

from ting_cmdb_physical_equipment where id=2897;

复制代码

运算结果:

java可以用BigDecimal接收

复制代码

7c7fcc5c4fafe38838c8fd9d11f1b335.png

总结

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

为什么会出现BigDecimal类型呢,

经过上面的测试:

可以得出

用的是 Map ,List>接收,

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

满足上述两个条件。

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

来源:https://www.tuicool.com/articles/q2QRNra

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值