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)
http://www.oschina.net/question/2343314_232098
你的程序处理有问题啊,查不到结果是返回的列表为空,就不能再取列表值否则就会数组越界了。那你需要对查询结果进行判断啊,当没有查到数据时你的.list()返回的列表长度为0,那么你就不能再get(0)了啊。作下判断这个返回的list().size()非零再取,否则不处理。