hibernate+DAO+STRUTS无法更新

mimi5211 2009-03-22 01:56:28
大家帮看看啊:为什么不用实现更新啊?我是先查出来再更新的,我用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;

大家帮看看啊,为什么不能更新啊?
...全文
105 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
mimi5211 2009-03-31
  • 打赏
  • 举报
回复
说详细点好不好啊
zhoushaolan 2009-03-22
  • 打赏
  • 举报
回复
代码有点乱;
DAOFactory.getUserinfoInstance().update(userinfo);

这个对象先得查一次;再更新;
更新的对象得是持久对象,非临时对象;试试!

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧