急急急,strtus2和hibernate不兼容问题 当在DAO层中使用hibernate实现登录查询传递参数时,就报这种错误,求高手解决,感激!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你给的都是一些没用的报错,只要你的代码有问题就很有可能出现这种报错,你看看报错的下面有没有空指针异常什么的。或者发上来我帮你看看。另外建议楼主下次贴代码,不要贴图片,要不照着图片打代码挺麻烦的。最后说一下struts2和hibernate肯定是没有问题的。要不经典的SSH怎么用啊。如果你想要struts2和hibernate结合使用的例子,我可以发给你份。 Dao层验证登录的一个方法,当用HQL查询有问题,换成Criteria查询就可以,user 是struts2下一个登陆action传入的值public int loginDao(Users user) { //返回的值 int refult =0; Session se =null; Transaction tr =null; try { se=HibernateSessionFactory.getSession(); tr=se.beginTransaction(); Query qu =se.createQuery("from Users where name=:name and password =:password "); qu.setProperties(user); /*Criteria qu =se.createCriteria(user.getClass()); qu.add(Restrictions.eq("name",user.getName())); qu.add(Restrictions.eq("password",user.getPassword()));*/ refult =qu.list().size(); tr.commit(); } catch (Exception e) { tr.rollback(); System.out.println(e.getMessage()); }finally{ se.close(); } return refult; }登录actionpackage www.bdqn.com.Login;import www.bdqn.com.BizImql.LoginBizImql;import www.bdqn.com.DaoImql.LoginDaoImql;import www.bdqn.com.eatiy.Users;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport { private Users user; private String ajax; public String getAjax() { return ajax; } public void setAjax(String ajax) { this.ajax = ajax; } public Users getUser() { return user; } public void setUser(Users user) { this.user = user; } public String execute() throws Exception{ System.out.println("执行方法"+this.getUser().getName()); System.out.println(getAjax()); LoginBizImql lz =new LoginBizImql(); lz.setLg(new LoginDaoImql()); if(lz.loginBiz(user)==1){ if("house_".equals(getAjax())){ return "ajax"; } return SUCCESS; }else{ if("house_".equals(getAjax())){ addFieldError("user.name", "用户名或密码错误"); return "inputs"; } return INPUT; } }} 就是这样 ,不传参数 ,直接HQL语句“from Users”就不报错 Query qu =se.createQuery("from Users where name=:name and password =:password ");qu.setProperties(user);这句话里面你name和password都没有给赋值啊。或者你至少改成user.name和user.password才行啊String hql="from Memberinfo as u where u.name=?&&u.password"; Query query=session.createQuery(hql); query.setString(0,u.getname); query.setString(0,u.getPassword); List<User> list=query.list(); if(query.list()==null){ System.out.println("dao层,不存在该用户数据"); }else{ System.out.println("存在,返回该用户的数据"); User user=(User) list.get(0); System.out.println("该用户数据为"+user); } 有一句打错了,应该是 query.setString(1,u.getPassword);另外你用的是user,我用的是u,这是在我以前的代码上改的,所以没弄全。 jsf 多个form 出错 (紧急) 运行出错. 请问jboss403中怎么配置到Oracle9i的数据源 跪求JspSmartUpload包~~ 100分求解:linux9下weblogic8.1.2console左侧树形菜单无法显示!! 如何读一个目录下的所有文件? 那位能回答这个Stuts-config关于加入plug-in的配置问题,马上给分。 j2eesdk 1.4的问题,启动时报错,怎么回事? Springboot 加载不到数据库驱动 求好心大佬帮解决cookie记录访问时间的问题 JXL导出excel文件路径 Java中main方法必须写在public类中吗?
只要你的代码有问题就很有可能出现这种报错,
你看看报错的下面有没有空指针异常什么的。
或者发上来我帮你看看。
另外建议楼主下次贴代码,不要贴图片,要不照着图片打代码挺麻烦的。
最后说一下struts2和hibernate肯定是没有问题的。要不经典的SSH怎么用啊。
如果你想要struts2和hibernate结合使用的例子,我可以发给你份。
public int loginDao(Users user) {
//返回的值
int refult =0;
Session se =null;
Transaction tr =null;
try {
se=HibernateSessionFactory.getSession();
tr=se.beginTransaction();
Query qu =se.createQuery("from Users where name=:name and password =:password ");
qu.setProperties(user);
/*Criteria qu =se.createCriteria(user.getClass());
qu.add(Restrictions.eq("name",user.getName()));
qu.add(Restrictions.eq("password",user.getPassword()));*/
refult =qu.list().size();
tr.commit();
} catch (Exception e) {
tr.rollback();
System.out.println(e.getMessage());
}finally{
se.close();
}
return refult;
}登录actionpackage www.bdqn.com.Login;import www.bdqn.com.BizImql.LoginBizImql;
import www.bdqn.com.DaoImql.LoginDaoImql;
import www.bdqn.com.eatiy.Users;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport {
private Users user;
private String ajax; public String getAjax() {
return ajax;
} public void setAjax(String ajax) {
this.ajax = ajax;
} public Users getUser() {
return user;
} public void setUser(Users user) {
this.user = user;
}
public String execute() throws Exception{
System.out.println("执行方法"+this.getUser().getName());
System.out.println(getAjax());
LoginBizImql lz =new LoginBizImql();
lz.setLg(new LoginDaoImql());
if(lz.loginBiz(user)==1){
if("house_".equals(getAjax())){
return "ajax";
}
return SUCCESS;
}else{
if("house_".equals(getAjax())){
addFieldError("user.name", "用户名或密码错误");
return "inputs";
}
return INPUT;
}
}
}
就是这样 ,不传参数 ,直接HQL语句“from Users”就不报错
qu.setProperties(user);
这句话里面你name和password都没有给赋值啊。
或者你至少改成user.name和user.password才行啊
String hql="from Memberinfo as u where u.name=?&&u.password";
Query query=session.createQuery(hql);
query.setString(0,u.getname);
query.setString(0,u.getPassword);
List<User> list=query.list();
if(query.list()==null){
System.out.println("dao层,不存在该用户数据");
}else{
System.out.println("存在,返回该用户的数据");
User user=(User) list.get(0);
System.out.println("该用户数据为"+user);
}
query.setString(1,u.getPassword);
另外你用的是user,我用的是u,这是在我以前的代码上改的,所以没弄全。