各位前辈,小弟一个小小的整合SSH项目,但是一直无法实现删除和更新的功能,去百度知道也没人能回答,希望这边有人能帮我一下,这个是很简单,但本人是菜鸟,为找工作急啊,没有时间让我一直拖了。我的QQ是477623440,加一下我,我把项目发给前辈们,数据库是用oracle的,你们帮我实现这个功能,在告诉我,我错在哪里,不能实现,就你们帮帮我吧~~~谢谢!!!这个真的不难

解决方案 »

  1.   

    public class LogAction extends Action {
    private Regites regites;
    public void setregites(Regites regites)
    {
    this.regites=regites;
    }
    public Regites getregites()
    {
    return regites;
    }
    private regitserverdao regitserverdao;
    public void setregitserverdao(regitserverdao regitserverdao)
    {
    this.regitserverdao=regitserverdao;
    }
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) {
    System.out.println("-------------------");
    Regites regites=new Regites();
    regitserverdao.removeUser(regites);
    return mapping.findForward("success");
    }
    }
      

  2.   

    package com.ljj.regit.server.dao;import java.util.List;import com.ljj.regit.model.Regites;
    import java.lang.Integer;public interface regitserverdao {
    public void save(Regites reg);
    public List  findlist();
    public void removeUser(Regites reg);
    public Regites findUserById(Integer id);
    public void updateRegites(Regites reg);
    }
      

  3.   

     attempt to create delete event with null entity
    就是这个错误,大家帮忙一下吧,每个人都有这个时候吧
      

  4.   

    删除前线LOAD下要删除的记录,在删除
      

  5.   

    Regites regites=new Regites();
     这不 要NEW
      

  6.   

    不要NEW???
    那要写成什么样子??
      

  7.   

    因为你NEW就说是一条新数据,试问新数据怎么删?
    要删数据,当然是找到一条匹配条件的数据,然后删之既然要找,就FIND(这话是不是白痴了点)
      

  8.   

    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) {
    System.out.println("-------------------");
    Regites regites=new Regites();//这边要怎么改啊
    regitserverdao.removeUser(regites);
    return mapping.findForward("success");
    }
    }
      

  9.   

    Hibernate中要想delete和update必须先load;因为,Hibernate的delete和update操作的对象是Session缓存中的实体对象,而不是直接操作了数据库!因此,在进行这些操作前需要先将实体对象load到Session缓存中,然后再进行
    Hibernate入门之更新,删除数据 :
      

  10.   

    Hibernate操作的是对象 记住这点就可以了,想要删除那么就传一个你想删除的那条记录对象,记住主建布恩那个未空。
    顺便建议下楼主 既然用的SSH框架,怎么能忘了Spring提供的JDBCTemplate的呢?
    删除用Jdbctemplate多少就和纯sql文一样。
      

  11.   

    16楼的前辈你说的没错,但是我传一个对像,都是这个错误attempt to create delete event with null entity
      

  12.   

    package com.ljj.regit.dao.hibernate;import java.util.List;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import com.ljj.regit.dao.regitdao;
    import com.ljj.regit.model.Regites;
    import java.lang.Integer;public class regithibibernate extends HibernateDaoSupport implements regitdao { public void save(Regites reg) {
    this.getHibernateTemplate().saveOrUpdate(reg);
    }
    public List findlist()
    {
    return this.getHibernateTemplate().find("from Regites");
    }
    public void removeUser(Regites reg)
    {
    reg=(Regites) this.getHibernateTemplate().get(Regites.class, 2);//这个是后来写的,这样子就可以删掉ID为2的,但我要任意删呢???
    this.getHibernateTemplate().delete(reg);
    }
    public Regites findUserById(Integer id)
    {
    Regites regites = (Regites) this.getHibernateTemplate().get(Regites.class, id);
    return regites;
    }
    public void updateRegites(Regites reg)
    {
    this.getHibernateTemplate().update(reg);
    }}
      

  13.   

    删除的时间没找到实体,你在删除前先打印一下哪个实体(你应该是null的)所以在数据库找不到对应的记录
    你可以指一个实体去删除,或者查出这条数据再去删除.
      

  14.   

    确实是NULL,如何指定一个实体去删除呢???或者是查出数据去删除???
    请指教~~~
      

  15.   

    reg=(Regites) this.getHibernateTemplate().get(Regites.class, id);
    //然后id是外部传进来的不就ok了吗 前提是 这条记录必须是数据库里存在的才能删除成功
    //你可以在这里打印一下上面得到的 reg 是否为空 然后在
    this.getHibernateTemplate().delete(reg);
      

  16.   

    你不会先用hibernate里面的find方法查找出数据,然后放到Regites,再传到你的remove方法删除就好啦