hz_king
hz_king
2017-12-14 13:47
采纳率: 75%
浏览 1.1k
已采纳

SSh中关于Hibernate的问题

getHibernhttp://ask.csdn.net/#ateTemplate().update这个方法具体要怎么写,如果我要根据我一个User表的id来更新这个用户的其他信息的话,要怎么写

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

11条回答 默认 最新

  • PWK999
    PWK999 2017-12-15 02:34
    已采纳
     //假设User有 name、address、age三个字段
        public void updateUser(int userid){
            User s=(User)getSession().load(Student.class, 2);//根据id查询出你要修改的那条信息,例如修改第2条
            u.setName("小明");//要修改姓名(name)
            u.setAddress("xx省xx市");//要修改地址(address)
            this.getHibernateTemplate().update(u);
        }
        //注意:如果没有先查出数据就直接修改那条数据的某个字段,你的数据更新后,没有修改的字段会变成null的
        //例如:假如我上面没查询,直接修改name和address,那数据库被修改后age的值就会变成null
    
    点赞 评论
  • tkggepmft
    tkggepmft 2017-12-14 13:50

    getHibernateTemplate().update(user),这个方法里面的参数必须是对象,如果输入只有id,可以根据id查询出对象出来,然后将对象传进去。
    如:
    String queryString = "from User where cid = ?";
    User user = ((List) this.getHibernateTemplate().find(queryString, id)).get(0);
    this.getHibernateTemplate().update(user);

    点赞 评论
  • weixin_38299517
    琉星之云 2017-12-14 13:52

    你是要SQL语句吗???

    点赞 评论
  • hz_king
    hz_king 2017-12-14 13:56

    对啊,我用SQL语句写啊。。。。。

    点赞 评论
  • hz_king
    hz_king 2017-12-14 13:56

    public void update(User user){
    User user2=(User)getHibernateTemplate().get(User.class, user.getUid());
    user2.setUsername(user.getUsername());
    user2.setPassword(user.getPassword());
    this.getHibernateTemplate().update(user2);

        这样写有错吗
    
    点赞 评论
  • weixin_38299517
    琉星之云 2017-12-14 14:02

    你那个update()是不是自己写的啊,还是生成的。

    点赞 评论
  • hz_king
    hz_king 2017-12-14 14:12

    自己写的啊,当然自己写的

    点赞 评论
  • hz_king
    hz_king 2017-12-14 14:13

    这样可以提交到数据库吗

    点赞 评论
  • weixin_38299517
    琉星之云 2017-12-14 14:16

    如果你写的SQL语句对的话,应该是可以的。

    点赞 评论
  • shenweilucky
    我不是需分是开发 2017-12-14 16:33

    String queryString = "from User where cid = ?";
    User user = ((List) this.getHibernateTemplate().find(queryString, id)).get(0);
    this.getHibernateTemplate().update(user);

    点赞 评论
  • Mr_Huang_ning
    Mr_Huang_ning 2017-12-15 02:49

    我记得hibernate有个机制,session用get或者find等方法的时候是持久态,这个时候只需要直接对象点set重新赋值,就可以更新,不用再去执行update方法

    点赞 评论

相关推荐