如何在Hibernate中使用SQL语句更新数据库

如何在Hibernate中使用SQL语句更新数据库,第1张

假如bean的配置文件存在

你可以在执行完sql后面加上addentity方法

hibernate会自动封装

如果这个bean是没有xml配置文件的

那你只能去遍历这个list

构造bean

hibernate 3 :

/**

*更新 *** 作..传入的user里 包含之前user的主键id 和现在新的数据 name edu gender

*先 按照id查出 hibernate中的 原数据 u ,然后给u 重新赋值,最后保存

*/

@Override

public boolean Update(UserEntity user) {

ComUserEntity u = getHibernateTemplate().get(UserEntity.class,user.getId())

u.setId(user.getId())

u.setName(user.getName())

u.setEdu(user.getEdu())

u.setGender(user.getGender())

getHibernateTemplate().saveOrUpdate(u)

return true

}

上述回答是错误的,Hibernate已经内置了部分字段更新机制,只是大家没有深入了解Hibernate的机制,说了很多关于Hibernate的不好,个人认为Hibernate比所谓的iBatis好过百倍。

//说明: 这里修改密码实现的部分更新,而不是全部字段的更新。

//(1) 实现部分的更新方法是:

// 1) 从数据库中查询到实体。

// 2)将待更新数据字段设置到查询到实体上,执行save或update方法,则可实现部分字段。

// Account account = (Account) session.get(Account.class,accountID)

// account.setPassword("new password")

// session.update(account) //可实现部分更新

// session.save(account)//可实现部分更新

//(2)如何待更新的实现不是来源数据,则无法实现部分字段更新,如

// Account aaa = new Account()

// aaa.setPassword("new password")

// aaa.setAccountID(accountID)

// session.save(aa) //不可实现部分更新

// seesion.update(aa) //不可实现部分更新

//

//(3) 通过对象方式传递修改的参数

//

// Account sssAccount = new Account()

// sssAccount.setAccountID(accountID) //

// sssAccount.setPassword(password)//

//

// Account account = (Account) session.get(Account.class, accountID)

//

// DbUility.copyPropertiesIgnoreNull(sssAccount, account)

// session.update(account)

//

// 上述方式也可实现部分字段更新

// 注意,若拷贝前后account的password值不变,则不会更新该字段,对于accountID也是一样的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9681643.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存