心得感悟:hibernate数据库查询中,只允许通过表主键查询获取数据库类,根据其他的非主键数据查询是不允许的。
这里是自定义数据语句,根据非主键username查询用户类。值得注意的是,书写自定义hql:" from User user where name= ? " 语句时,必须是类User大小写必须与映射文件中的一致,不然会抛出:user is not mapping.异常
public User getByName_1(String username) {
User user = null;List<User> users = null;
Session session = HibernateUtils.openSession();
try {
List list = doQueryHQL(" from User user where name= ? ",
session).setString(0, username).list();
users = list;
System.out.println(users);
if (users != null && users.size() > 0) {
// 总是返回用户列表的第一个用户
user = users.get(0);}
} catch (Exception e) {
e.printStackTrace();
} finally {
session.close();
}
return user;
}