bigdecimal转换为long_mysql的int类型,返回为BigDicemal的奇怪现象

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

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

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

08601bfbe75198cf1f1297d2cb72f452.png

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

    select id from ting_cmdb_physical_equipment where id=2897;

显示结果,

java可以用 int 接收。
28fbaa15cbe63b4e628d7535f991235d.png

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

    select id-1 as id     from ting_cmdb_physical_equipment where id=2897;

显示结果:

java可以用int接收
ac288d05ebf6dcc1dc36ca01f2668d4e.png

1.3 id 做聚合运算

    select sum(id) as id     from ting_cmdb_physical_equipment where id=2897;

运算结果:

java可以用int接收
cf975879a495392b254ec993327ac877.png

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

b79c411187b494f40d718b695af098e5.png

2.1 id没做运算

    select id from ting_cmdb_physical_equipment where id=2897;

运算结果:

java可以用int 接收
13701727e8df2a3af34bcb162202638a.png

2.2 id做运算

    select id-1 as id     from ting_cmdb_physical_equipment where id=2897;

运算结果:

java要用long类型接收
2053b27f6db765429682cb799135dd85.png

2.3 id做聚合函数运算

    select sum(id) as id     from ting_cmdb_physical_equipment where id=2897;

运算结果:

java用BigDecimal接收
7cf9c85172040f7ec378af5ec9a16028.png

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

97de7153c58cb593063d42cff59c75f9.png

3.1 id没做运算

    select id as id    from ting_cmdb_physical_equipment where id=2897;

运算结果:

java可以用int接收
577501bea6acace052ba8bbcc3fe9977.png

3.2 id做运算

    select id-1 as id     from ting_cmdb_physical_equipment where id=2897;

运算结果

java可以用long接收
1e2338094c8aec302cc392f3e3ae7d1e.png

3.3 id做聚合运算

    select sum(id) as id     from ting_cmdb_physical_equipment where id=2897;

运算结果:

java可以用BigDecimal接收
d7f410e21fad5d99f7c04c0726ab5f2e.png

总结

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

为什么会出现BigDecimal类型呢,

经过上面的测试:

可以得出

  1. 用的是 Map ,List>接收,
  2. sql语句中int类型的值做了 聚合运算

满足上述两个条件。

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值