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

菜鸟初级自学记录性质文档
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/

你可能感兴趣的:(自学笔记,saveEntity)