getHibernateTemplate().find(sql).get(0);
若查询的结果集不为空的话,则会正常的返回一个对象。若查询的结果集为空,为什么会出现数组越界(IndexOutOfBoundsException)的错误?像这种问题有没有更...
若查询的结果集不为空的话,则会正常的返回一个对象。
若查询的结果集为空,为什么会出现数组越界(IndexOutOfBoundsException)的错误?
像这种问题有没有更好的解决办法,当结果集为空的时候返回一个空对象,而不是报错? 展开
若查询的结果集为空,为什么会出现数组越界(IndexOutOfBoundsException)的错误?
像这种问题有没有更好的解决办法,当结果集为空的时候返回一个空对象,而不是报错? 展开
1个回答
展开全部
getHibernateTemplate().find(sql).这个方法返回的是一个List集合
如果为null的话,没有数据,get(0)不存在,所以会报数组越界
解决方法:
List list = getHibernateTemplate().find(sql);
if(!list.isEmpty()) { //判断有数据时执行
list.get(0);
}
如果为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)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询