java.lang.IndexOutOfBoundsException: Index: 0, Size: 0我做了一个保存功能根据标题查询数据库是否有相同标题,有则更新没有则生成新纪录,但是若没有的话,查询就会造成空的list,报错代码如下public Plans findByPlanName(String planName) {
return (Plans)this.getSession().createQuery("from Plans where title=?").setParameter(0, planName).list().get(0) ; }如何避免查询数据库没有的纪录造成报错呢?
return (Plans)this.getSession().createQuery("from Plans where title=?").setParameter(0, planName).list().get(0) ; }如何避免查询数据库没有的纪录造成报错呢?
解决方案 »
- 关于密码框的一些问题
- Struts2 与Spring 整合时出错,在线等待解答,谢谢
- struts2标签里设置成:escape=false,是否不会被百度收录?
- 急 FCKeditor在线编辑器 的配置与使用方法
- 不对呀!tomcat怎么会显示root下的文件?
- 在javabean中怎么重定向一个页面?
- 在j2ee中做新闻发布,有没有控件可以像word哪样控制文章格式的
- 哪位大虾知道在TOMCAT 5。0 中设置虚拟目录??
- 网页美化!急!!!
- 大放血!!求救:TOMCAT+JNDI,救命!!!!!
- javascript中的小问题
- CDN是否只能用于静态文件,如果一个html里面有一个iframe嵌有jsp,是否可用?
public Plans findByPlanName(String planName) {
List<Plans> plansList = (List<Plans>) this.getSession().createQuery("from Plans where title=?").setParameter(0, planName).list();
if (plansList.isEmpty())
return null;
return plansList.get(0) ;
}
然后在你调用的地方判断Plans是否为NULL,NULL则新增,否则更新
if(obj!=null){
return (Plans)obj;
}else{
//如果查询为记录,则做一些处理等等
return null;
}
//这样也可以,但是return前还是最好判断一下
Plans plans = (Plans)this.getSession().createQuery("from Plans where title=?").setParameter(0, planName).uniqueResult();
return plans;