使用ibatis 统计查询的时候 是否会得到null值的结果?

MartinDai
  • 1.5k

方法

public int countSomething(Condition condition) {
        return (Integer) getSqlMapClientTemplate().queryForObject("test.countSomething", condition);
    }

xml

<select id="countSomething" parameterClass="Condition" resultClass="int">
        SELECT COUNT(1) FROM test
        WHERE condition1 = #condition1#
    </select>

这里直接强转成Integer然后利用拆箱返回有可能会NPE吗?

回复
阅读 4.3k
4 个回答

sql 语句会有返回null的情况,比如:
select count(1) from table_1 group by column_1;
select count(1) from table_1 where id=123456 limit 2, 10;
需要在Mapper.java接口方法返回Integer,并在业务层作相应判空处理。

别问我为什么[手动捂脸哭]

会不会为null这取决于你的sqlibatis没有任何关系。
select count(1) from test where 1=0 你可以使用这个sql证明一下会不会为null

count函数返回的就是数值类型,不会得到null

listen_
  • 2.8k

直接强转成Integer不会,但是拆箱会。

int i = (Integer) null;  //NullPointer Exception
Integer i1 = (Integer) null;  //null
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏