action 判断问题

来源:百度知道 编辑:UC知道 时间:2024/05/09 11:31:27
请问我要通过一个ID 查一个表有没有这条记录(ID是一定有的,但不一定有记录)
如果有记录的话 就把表的里记录get到form里去
如果没有的话就直接到这个表里去 请问如何判断
我是这样写的
try {
sg=sb.getgrade(new Long(sgf.getStudent()),false);
} catch (Exception e) {
e.printStackTrace();
}

if(sg.getShuxue()!=null){
sgf.setActionType(BaseForm.EDIT);
sgf.setId(sg.getId().toString());
sgf.setShuxue(sg.getShuxue().toString());
sgf.setYuwen(sg.getYuwen().toString());
sgf.setYingyu(sg.getYingyu().toString());
}else if(sg==null){
sgf.setActionType(BaseForm.ADD);
}

但是报了这样的异常

Unhandled Exception thrown: class org.hibernate.ObjectNotFoundException

救命啊~
555555555555555555555555555555555555555
先给20分 解决了再给分

在Hibernate中,对于Session的读取操作提供两种方法:load()和get()。 对于程序读取的当前ID不存在的时候,load()方法就是直接抛出异常,而get()方法则返回null值!

所以这样就可以捕获这样的异常了。

sg=sb.getgrade(new Long(sgf.getStudent()),false);
这句就是查询数据库的方法吧,
你用id取得记录不存在,所以查询的时候就会报错
解决的方法大概就是

在sb.getgrade方法里面执行查询操作,数据库返回给你数据首先放在request里,然后判断request是否为空,如果不为空,将request放进sb.getgrade的数据类型里;如果为空就返回null。
这样一般就不会出错了。
大哥。哪里不明白说,跪求给分啊