getHibernateTemplate().find(sql).get(0);

若查询的结果集不为空的话,则会正常的返回一个对象。若查询的结果集为空,为什么会出现数组越界(IndexOutOfBoundsException)的错误?像这种问题有没有更... 若查询的结果集不为空的话,则会正常的返回一个对象。
若查询的结果集为空,为什么会出现数组越界(IndexOutOfBoundsException)的错误?
像这种问题有没有更好的解决办法,当结果集为空的时候返回一个空对象,而不是报错?
展开
 我来答
zhaotao_king
2011-11-30 · TA获得超过2455个赞
知道大有可为答主
回答量:863
采纳率:0%
帮助的人:1145万
展开全部
getHibernateTemplate().find(sql).这个方法返回的是一个List集合
如果为null的话,没有数据,get(0)不存在,所以会报数组越界
解决方法:
List list = getHibernateTemplate().find(sql);
if(!list.isEmpty()) { //判断有数据时执行
list.get(0);
}
更多追问追答
追问
if(list==null){
return null;
}else return list.get(0);
上面的这种方式还是会报错。是不是List集合的非空验证只能调用isEmpty()方法呢?
追答
嗯,你也可以取出list的长度进行判断
list==null只能判断是否有这个对象,所以有时候是不可行的!
if(list.size()>0)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式