bo.update(mem);
这样能更新成功
换成   
  Member member = bo.getById(1);
  member.setName("aaa");
  bo.update(member);
就出现session was close错误,!我是想把数据取出来在页面编辑,然后在更新到数据库中.在struts Action中是先调用getById()方法,再把页面传过来的值赋给member对象.总是出现colse()错误!请问大侠这个该如何解决比较好!

解决方案 »

  1.   

    getById 的时候把Session也通过参数传进去,变成
    public Member getById(int id, Session session) throws Exception{
    // session = HBF.getSession();
    // ...
    finally{
    // session.close();
    return member;
    }
    }
    把getById里面获取session和关闭session的代码都去除.update方法里面这样写
    public void update(Member member){
    // ...
    try{
    Member me = getById(member.getId(), session); // session 通过参数传给 getById()
    me.setId(member.getId());
    me.setName(member.getName());
    ......
    session.update(me); 
    }
      

  2.   

    更新数据要 使用提交 Tracstion  commit() 事务提交