我想通过MySQL数据库中的唯一ID更新字段。
第一种方法:使用唯一ID(select * from
)从数据库中获取对象(uniqueresult()
),然后将所需值设置为object并执行saveOrUpdate
。
第二种方法是在DAO实现(update table tab set tab.name=123 where...
,executeUpdate()
)中编写更新查询,结果也相同。
执行更新操作的好方法是什么?
答案 0 :(得分:1)
如果您使用的是Hibernate
,那么当您可以使用 Hibernate
Sessions ' s {{{}时,为什么要在原生SQL
内进行此操作1}},.get()
,.load()
.merge()
方法。
以下是Hibernate文档中修改持久对象的示例:
.update()
如需进一步阅读,您可以查看Hibernate文档中的Modifying persistent objects和Modifying detached objects部分。
根据文件:
更新对象状态的最简单方法是
DomesticCat cat = (DomesticCat) sess.load( Cat.class, new Long(69) ); cat.setName("PK"); sess.flush(); // changes to cat are automatically detected and persisted
它,然后在Session打开时直接操作它。
我希望这能解答您的问题哪种方式可以执行更新操作?为什么?。
答案 1 :(得分:0)
没有"好方法"执行您想要的更新。它完全取决于您的需求。
两种方法都有效,但第一种方法允许您更新多个字段而无需修改SQL查询。在调用saveOrUpdate方法之前,开发人员负责处理对象的状态。
第二种方法将确保数据库中不会更新其他字段。
回答您未来的需求。您是否只需要更新此字段?它可以在未来改变吗?两种方法对应用程序的影响是什么?
然后你会得到答案。