插入数据时,往往需要先校验该数据是否存在,若不存在,新增;存在,修改!常规操作是在业务代码中敲上述的逻辑,若果把判断的逻辑放入数据库那一层,会方便很多
<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的方法即可