在JavaEE练习整合struts,Hibernate和Spring时,出现了一个这样的错误:
错误分析:在我的hql语句里面,from后面接的是我的数据库表名,where条件里面也是用的数据库表中对应的字段名。
HTTP Status 500 - DLB is not mapped [from DLB u where u.XH=? and u.KL=?]
关键错误代码如下:
public class DlDaoImpl extends BaseDao implements DlDao{
@Override
//实现:根据学号和口令查找
public Dlb find(String xh, String kl) {
// TODO Auto-generated method stub
// System.out.println("开始执行数据库查询");
String hql = "from DLB u where u.XH=? and u.KL=?";
Session session = getSession();
Query query = session.createQuery(hql);
query.setParameter(0, xh);
query.setParameter(1, kl);
List users = query.list();
Iterator it = users.iterator();
while(it.hasNext()){
if(users.size()!=0){
Dlb user = (Dlb)it.next();//创建持久化的JavaBean对象user
return user;
}
}
session.close();
return null;
}
}
错误分析:在我的hql语句里面,from后面接的是我的数据库表名,where条件里面也是用的数据库表中对应的字段名。
改正:将from后面的表名换成了表映射之后对应的类名,where里面换成对应类名的属性名,并且大小写保持一致,这样就没有了上述的错误。