saveEntity、 insertEntity与updateEntity构建的使用细节

本文详细解析了数据库操作中的saveEntity、insertEntity与updateEntity方法的区别与应用场景。saveEntity兼具insert与update的功能,但可能引起数据覆盖风险;insertEntity适用于明确插入新数据的场景,而updateEntity用于已有数据的更新。建议在明确操作类型时,优先使用insertEntity或updateEntity以提升性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

菜鸟初级自学记录性质文档
com.eos.foundation.database.DatabaseUtil.saveEntity
com.eos.foundation.database.DatabaseUtil.insertEntity
com.eos.foundation.database.DatabaseUtil.updateEntity
saveEntity、 insertEntity与updateEntity的应用场景及区别对比
1、saveEntity用来保存一条记录到数据库。该构件与inserEntity有所不同:如果数据库没有相同主键的记录则直接插入到数据库对应的表中,否则只是修改已经存在的相同主键的记录的数据。可以简单理解为,它既可用于insert场景,也可用于update场景。
主要针对上层应用,兼容insertEntity和updateEntity,模糊处理保存用户数据。适用于未知操作类型和未知数据库中是否已存在相同主键的数据。倾向于最终目标,用户数据保存入库,弱化或者不作为主要关注数据操作记录或者数据动态变化,会破坏过程数据,造成掩盖主键冲突的问题。当主键已经存在,会默认修改原来的数据,造成数据覆盖和丢失,调试也很难找到问题。
2、insertEntity用来把一个SDO对象的值保存到数据库相应的实体表中。
主要针对相对saveEntity底层一些的快速插入数据,需要明确操作类型为插入数据,需要提供不冲突的主键,主键冲突或为null会抛出异常。性能稍高于saveEntity。
3、updateEntity用来更新一条数据库记录,更新时根据实体定义的主键属性的值更新。没有主键不能更新。
主要针对相对saveEntity底层一些的快速更新数据,需要明确操作类型为更新数据,需要提供明确已存在数据库中的主键,主键为空或不存在与数据库中会抛出异常,性能稍高于saveEntity。
4、总结:尽量避免使用saveEntity,saveEntity要先查询是否有数据,有数据时使用updateEntity,没有时使用insertEntity,会导致性能下降,数据量比较太的时候会导致性能下降较高;建议直接使用insertEntity(如记录DB日志,肯定是插入新操作,用insertEntity就可以了),和updateEntity(如果确认是修改操作)。
文章参考http://doc.primeton.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值