在用SPRING+HIBERNATE3做数据库更新操作时,我不明白getHibernateTemplate().update()的执行原理。手册上用getHibernateTemplate().update(user),user是一个FORMBEAN(为什么不用HQL),哪位朋友可以帮我解释一下做更新update的步骤,说明原理,谢谢!

解决方案 »

  1.   

    我觉得这个函数就是对hibernate的一个封装
    实质还是会执行hibernate的函数,并且加上事务处理
      

  2.   

    user是怎么会是一个FORMBEAN??,你怎么看的。
    package com.data.dao.impl;
    import java.util.List;
    import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
    import com.data.dao.IUserDao;
    import com.web.bo.User;   //注意这里, 我查了 com.web.bo.User 是个hibernate的pojo对象,不是formbeanpublic class UserDaoImpl extends HibernateDaoSupport implements IUserDao { public User getUser(String username) {
    //  根据用户名得到 User 对像
    String hql="from User u where username=?";
    List users=this.getHibernateTemplate().find(hql,username);
    if(users.size()==1)
    return (User)users.get(0);
    return null;
    } public boolean addUser(User user) {
    //  增加新用户
    this.getHibernateTemplate().save(user);
    return true;
    } public boolean delUser(Integer uid) {
    //  删除一个用户
    User user=(User) this.getHibernateTemplate().load(User.class,uid);
    this.getHibernateTemplate().delete(user);
    return true;
    } public boolean updateUser(User user) {
    //  修改User
    this.getHibernateTemplate().update(user);
    return true;
    } public List getAllUser() {
    //  查询所有用户记录
    String hql="from User u";
    List users=this.getHibernateTemplate().find(hql);
    return users;
    }}
      

  3.   

    楼上的代码很经典,我就是不明白this.getHibernateTemplate().update(user);这个user里现在的内容是什么?