【问题记录】使用getHibernateTemplate().find()方法的get(index)方法
2015-08-11 21:49
513 查看
做SSH项目的时候,写了这样一段代码:
这段代码是正确的
但是要注意的是,如下的写法是不正确的:
你不能一上来就get(0),因为你还不能确定getHibernateTemplate().find()返回的list是否有结果。
如果没结果,即size=0,此时你却执行get(0),那么就会抛IndexOutOfBoundException异常。
你必须先加上这样一句判断,成功才执行上面的代码:
考虑周到了,才能避免未知的错误发生!
public EmployeeVo getEmpByNo(String empNo) { EmployeeVo empVo = null; String hql = "from Employee where empNo = ?"; List<Employee> empList = getHibernateTemplate().find(hql, empNo); if (empList!=null && empList.size()>0) { Employee emp = empList.get(0); empVo = new EmployeeVo(); BeanUtils.copyProperties(emp, empVo); } return empVo; }
这段代码是正确的
但是要注意的是,如下的写法是不正确的:
Employee emp = (Employee) getHibernateTemplate().find(hql, empNo).get(0);
你不能一上来就get(0),因为你还不能确定getHibernateTemplate().find()返回的list是否有结果。
如果没结果,即size=0,此时你却执行get(0),那么就会抛IndexOutOfBoundException异常。
你必须先加上这样一句判断,成功才执行上面的代码:
if (getHibernateTemplate().find(hql, empNo).size() > 0)
考虑周到了,才能避免未知的错误发生!
相关文章推荐
- android 传感器必知必会 (上)
- Cocos2d-x3.1颗粒使用
- Accelerating Matlab
- 【树状数组】 HDU 5372 Segment Game
- Web支持可暂停的超大文件上传
- 借贷宝详细注册步骤:邀请朋友送20元,朋友再邀请朋友还送你10元【3天已赚6千】(附我的邀请记录和提现到账截图)
- UIAutomation调用计算器模拟自动执行
- VitrualBox复制centos系统网卡设置
- opencv配置
- EL表达式中获取list长度
- 360内推在线笔试算法题
- Centos程序最小化后,窗口标签都消失找不到窗口的问题
- My Env
- Beginning SDL 2.0(1) SDL功能简介
- 文件管理类的命令
- hdu 1285 确定比赛名次【拓扑】
- [cocos2dx]实例认识分析MVC模式
- android布局篇:Fragment,带侧边栏的activity以及table activity
- 【POI2008】STR
- [数学] Lucas定理模板