1 /🧵问题
mybatis mysql count(*) 能不能用 Integer 来接收?
一般count(*) 接收的方法都是 long型的,那我们用int来接收可以么?
long selectCountByCondition();
2 /🌮测试
编写一个测试类,把对应的类型改成int ,然后观察能够正确的得到结果。
<select id="selectCountByCondition" resultType="java.lang.Integer">
select count(*) from user
</select>
答案是可以,但你要确保不会溢出,你用byte接收都可以,只要xml里面的返回类型(resultType) 同步修改即可。
进一步测试,使用byte 来接收,且创造一个溢出值。
<select id="selectCountByCondition" resultType="java.lang.Byte">
select 215656 as count
</select>
溢出报错'215656' in column '1' is outside valid range for the datatype TINYINT.
3 /🍖结论
1、可以接收,只要是数字,byte都可以接收
2、必须要保证不溢出,不然会导致异常
当然还是建议按照统一的标准走(一般都用long),不要这边是integer,那边是Long,频繁的类型转化会非常的痛苦
每日一记,好运连连。