业务场景:
子站给我们传的配置数据,包含新增的配置数据和修改的配置数据,两种数据混在一起,所以我现在要根据数据库中是否有某条配置数据来判断子站传过来的数据是新增还是修改。
首先创建oracle的序列,查询oracle的序列
select SEQUENCE_OWNER,SEQUENCE_NAME from dba_sequences where sequence_owner='用户名';
查找出来自己项目使用的序列,根据规则进行命名
DROP SEQUENCE SEQ_COAL_DEPARTMENT_LISTID;
CREATE SEQUENCE SEQ_COAL_DEPARTMENT_LISTID
INCREMENT BY 1
START WITH 1
MAXVALUE 1.0E20
MINVALUE 1
NOCYCLE
CACHE 20
NOORDER;
==============本来想的
我们的项目不能用网上说的方法生成ID,可能是mybatis的原因,这里就采用增加1次查一次吧
<select id="getCoalDepartmentId" resultType="java.lang.Long">
select SEQ_COAL_DEPARTMENT_LISTID.nextval from dual
</select>
=============后来做的
使用merge into来做新增还是修改的逻辑判断,
如果按照平常的逻辑先查询数据库是否有这条配置数据 再根据查询的结果再增加,这样代码量也多,性能也不好,所以选择了这个
<insert id="insertCoalDepartment" parameterType="java.util.List">
merge into IDS_COA