插入數據時,往往需要先校驗該數據是否存在,若不存在,新增;存在,修改!常規操作是在業務代碼中敲上述的邏輯,若果把判斷的邏輯放入數據庫那一層,會方便很多
<insert id="saveOrUpdate">
<selectKey keyProperty="count" resultType="int" order="BEFORE">
SELECT count(*) AS COUNT FROM `org` WHERE id=#{org.id}
</selectKey>
<!-- 如果大於0則更新 -->
<if test="count>0">
UPDATE
`org`
SET
`name`=#{vo.name}
WHERE id=#{org.id}
</if>
<!-- 如果等於0則保存 -->
<if test="count==0">
INSERT INTO `org`(`id`,
`name`
VALUES (#{org.id},
#{org.name}
);
</if>
</insert>
業務代碼只需調用該mapper的方法即可