//hibernate中根据用户名查找用户 query.setString("n", name);这方法啥意思
static User findUserByName(String name){
Session s = null;
try{
s=HibernateUtil.getSession();
String hql = "from User as user where user.name=:n";
Query query = s.createQuery(hql);
query.setString("n", name);
List<User> list = query.list();
//返回User 对象
User user=null; //(User)list;
for(User user2:list)
{
user=user2;
}
return user;
}catch(HibernateException e){
throw e;
}finally{
if(s!=null)
s.close();
}
}
static User findUserByName(String name){
Session s = null;
try{
s=HibernateUtil.getSession();
String hql = "from User as user where user.name=:n";
Query query = s.createQuery(hql);
query.setString("n", name);
List<User> list = query.list();
//返回User 对象
User user=null; //(User)list;
for(User user2:list)
{
user=user2;
}
return user;
}catch(HibernateException e){
throw e;
}finally{
if(s!=null)
s.close();
}
}
String hql = "from User as user where user.name=?";
之后query.setString(1,"张山")
set.setString(a,"b") n 代表的是下标 第二个参数是值咯
要是那样的话query.setString("n", name)应该在Query query = s.createQuery(hql)之前,
扯淡,不懂就虚心点,别装,只要在query.list之前传进去就行。?叫做positional parameter,用序号定位。query.setString(1, name)
:叫做named parameter,用名字定位。query.setString("n", name)
而“name” 就是你设置要查询的条件值的名字