hibernate+DAO+STRUTS无法更新
大家帮看看啊:为什么不用实现更新啊?我是先查出来再更新的,我用update方法查出数据来,然后用updatedo来实现更新。
这是我的ACTION:
package cn.telmedia.cmsa.userinfo.action;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import org.hibernate.Session;
import cn.telmedia.cmsa.dao.factory.DAOFactory;
import cn.telmedia.cmsa.pojo.Userinfo;
import cn.telmedia.cmsa.userinfo.actionform.UserinfoActionForm;
public class UserinfoAction extends DispatchAction {
private Session session=null;
public ActionForward login(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
UserinfoActionForm userform=(UserinfoActionForm) form;
String username=userform.getUsername();
String password=userform.getPassword();
Userinfo userinfo=new Userinfo();
userinfo.setUsername(username);
userinfo.setPassword(password);
userinfo.getUsername();
userinfo.getRealname();
System.out.println("lop"+userinfo.getUsername());
System.out.println("lll"+userinfo.getRealname());
boolean flag = false ;
try {
flag = DAOFactory.getUserinfoInstance().login(userinfo) ;
} catch (Exception e) {
e.printStackTrace();
}
if (flag) {
request.getSession().setAttribute("uname", userinfo.getRealname()) ;
request.setAttribute("loginbean", userinfo);
return mapping.findForward("success");
} else {
request.setAttribute("err", "dddddddd") ;
return mapping.findForward("fal");
}
}
public ActionForward insert(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
UserinfoActionForm userform=(UserinfoActionForm) form;
Userinfo userinfo = new Userinfo();
userinfo.setInfoid(userform.getInfoid());
userinfo.setUsername(userform.getUsername());
userinfo.setPassword(userform.getPassword());
userinfo.setRealname(userform.getRealname());
userinfo.setDepartmentid(userform.getDepartmentid());
userinfo.setRoleid(userform.getRoleid());
userinfo.setAddress(userform.getAddress());
userinfo.setMphone(userform.getMphone());
userinfo.setCompany(userform.getCompany());
boolean flag = false;
try {
DAOFactory.getUserinfoInstance().insert(userinfo);
flag = true;
} catch (Exception e) {
}
request.setAttribute("flag", new Boolean(flag));
return mapping.findForward("insertdo");
}
public ActionForward delete(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
UserinfoActionForm userform=(UserinfoActionForm) form;
String username=userform.getUsername();
boolean flag = false;
try {
DAOFactory.getUserinfoInstance().delete(username);
System.out.println("8999");
flag = true;
} catch (Exception e) {
}
request.setAttribute("flag", new Boolean(flag));
return mapping.findForward("deletedo");
}
public ActionForward updatedo(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
UserinfoActionForm userform=(UserinfoActionForm) form;
String username=userform.getUsername();
String realname=userform.getRealname();
Userinfo userinfo = new Userinfo();
userinfo.setRealname(realname);
List all=null;
boolean flag = false;
try {
request.setAttribute("userbean", DAOFactory.getUserinfoInstance()
.QueryByUsername(username));
for(int i=0;i<all.size();i++)
{
String uusername=userinfo.getUsername();
userinfo.setUsername(uusername);
userinfo.setRealname(realname);
};
DAOFactory.getUserinfoInstance().update(userinfo);
flag = true;
} catch (Exception e) {
}
request.setAttribute("flag", new Boolean(flag));
return mapping.findForward("updatedo");
}
public ActionForward update(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
UserinfoActionForm userform=(UserinfoActionForm) form;
String username=userform.getUsername();
String realname=userform.getRealname();
Userinfo userinfo=new Userinfo();
userinfo.setUsername(username);
userinfo.setRealname(realname);
List all=null;
try {
request.setAttribute("userbean", DAOFactory.getUserinfoInstance()
.QueryByUsername(username));
for(int i=0;i<all.size();i++)
{
String uusername=userinfo.getUsername();
userinfo.setUsername(uusername);
};
request.setAttribute("userbean", userinfo);
} catch (Exception e) {
}
return mapping.findForward("update");
}}
这是我的DAO实现:
package cn.telmedia.cmsa.dao;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import cn.telmedia.cmsa.pojo.Userinfo;
import cn.telmedia.cmsa.sessionfactory.SessionFactory;
public class UserinfoDAOImpl implements UserinfoDAO {
private Session session = null;
public UserinfoDAOImpl() {
this.session = SessionFactory.getSession();
}
public boolean login(Userinfo userinfo) throws Exception {
boolean flag = false;
String hql = "FROM Userinfo AS u WHERE u.username=? AND u.password=?";
Query q = this.session.createQuery(hql);
q.setString(0, userinfo.getUsername());
q.setString(1, userinfo.getPassword());
System.out.println(hql);
List all = q.list();
if (all.size() > 0) {
flag = true;
userinfo.setRealname(((Userinfo) all.get(0)).getRealname());
}
System.out.println("all"+all.size());
this.session.close();
return flag;
}
public List QueryAll() throws Exception {
List all=null;
String hql="from Userinfo as u";
Query q=this.session.createQuery(hql);
all=q.list();
System.out.println(hql);
System.out.println(all);
return all;
}
public Userinfo QueryByUsername(String username) throws Exception {
Userinfo userinfo=null;
String hql="from Userinfo as u where u.username=?";
Query q=this.session.createQuery(hql);
q.setString(0, username);
List all=q.list();
if(all.size()>0)
{
userinfo=(Userinfo)all.get(0);
}
this.session.close();
return userinfo;
}
public List QueryByLike(String username) throws Exception {
List all=null;
String hql="from Userinfo as u where u.username like ?";
Query q=this.session.createQuery(hql);
q.setString(0, "%" + username +"%");
all=q.list();
this.session.close();
return all;
}
public void delete(String username) throws Exception {
String hql="delete from Userinfo where username=?";
Query q=this.session.createQuery(hql);
q.setString(0, username);
System.out.println("uii"+username);
q.executeUpdate();
this.session.beginTransaction().commit();
this.session.close();
}
public void insert(Userinfo userinfo) throws Exception {
this.session.save(userinfo);
this.session.beginTransaction().commit();
this.session.close();
}
public void update(Userinfo userinfo) throws Exception {
this.session.update(userinfo);
this.session.beginTransaction().commit();
this.session.close();
}
public List QueryByLike(int likeid) throws Exception {
// TODO Auto-generated method stub
return null;
}
}
这是我的DAO:
public void update(Userinfo userinfo)throws Exception;
大家帮看看啊,为什么不能更新啊?