2 nicholaskg NicholasKg 于 2016.04.07 23:43 提问

SSH框架查询数据库信息,当无此信息时报错

dao层:
public Users findByName(Users user){
return (Users) getSession().createCriteria(Users.class).add(Restrictions.eq("username", user.getUsername())).list().get(0);
};
service层:
public Users findByName(Users user) {
return userDao.findByName(user);
}

具体实现:
Users u = userService.findByName(user); 

当数据库存在此用户名时没问题,没有用户名就会报错
java.lang.reflect.InvocationTargetException
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

root cause

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
java.util.ArrayList.rangeCheck(ArrayList.java:653)
java.util.ArrayList.get(ArrayList.java:429)

2个回答

devmiao
devmiao   Ds   Rxr 2016.04.07 23:45
wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.04.08 06:48
  你的程序处理有问题啊,查不到结果是返回的列表为空,就不能再取列表值否则就会数组越界了。那你需要对查询结果进行判断啊,当没有查到数据时你的.list()返回的列表长度为0,那么你就不能再get(0)了啊。作下判断这个返回的list().size()非零再取,否则不处理。
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
SSH框架实现的用户登录系统,包括对数据库的增删改查
SSH框架实现的用户登录系统,包括对数据库的增删改查,工程项目下有sql文档,可直接用文档创建数据表。
ssh框架下 对数据库的增删改查
1 、开发环境 Ø        MyEclipse6.0 Ø        JDK 1.6 Ø        Java EE 5.0 Ø        Tomcat6.0 Ø        Struts2.1 Ø        Spring2.0 Ø        Hibernate3 2 、为ssh做好准备 2.1下载包 Ø    Struts2.1包下载:ht
由在EBS中收集分区表统计信息引发的思考
今天在看EBS性能调整文档的时候,有这样一段关于分区表统计数据收集的描述: When using the 'Gather Table Statistics' concurrent program, pass only the owner of the table (schema name) and the table name. Let all other parameters defaul
位图报错问题
出现问题: 这个问题从未见过,所以写此文权当做备忘。 ======================================================================= 分析问题必须从做过什么开始。 我回想了一会儿(虚词,此处大概30分钟,毕竟还要吃东西(你知道的血糖含量过低会影响大脑正常思考),记起做过这些事情: 1、给Rib
SSH框架数据库操作中session的获取以及本地sql的使用
不多说,直接上代码: 其中,DAO需要继承DAO extends HibernateDaoSupport applicationContext.xml中需要注入sessionFactory Session session = getHibernateTemplate().getSessionFactory().openSessi
SSH框架下的条件查询及查询结果分页
我的SSH框架下的条件查询+分页实现案例
java-用SSH框架实现将查询的信息分页显示
以查询学生表的信息为例: 1.   分页类 package com.tool; public class pageShow { //此类用于分页 private int pageNow;//当前页 private int totalSize;//总条数 private int totalPage;//总页数 private int pageSize=10;//每页显示条数 priv
SSH框架,在项目启动的时候加载数据库信息
1.启动类 package com.simpefect.listener; import java.util.List; import java.util.Map; import java.util.UUID; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; imp
oracle数据库中遇到 “记录被另一个用户锁定”
在PL/SQL中修改数据保存时遇到这种情况,把下列代码放在sql中运行下就可以保存了 alter system kill session '365,58022' ; select object_name as 对象名称, s.sid,s.serial# ,p.spid as 系统进程号 from v$locked_object l , dba_objects o ,
编写SSH框架碰到的问题
1.用户提交表单时,action类并没有接受到表单中的数值,系统提示 出现这种情况时可以检测一下action类的名字,是否命名一致,还有一种情况很容易忘记,就是接受表单的实体类忘记了写它的get(),set()方法,截图如下:如图有可能缺少这两种方法2.出现了调用DAO类的方法出现并未能获取到该数据,实例如下:这种情况是有可能applicatinContext.xml中beans的命名空间以及Sc