美文网首页
MyBatis避免重复插入及choose(when, other

MyBatis避免重复插入及choose(when, other

作者: X兄 | 来源:发表于2019-03-04 10:53 被阅读15次

一.  MySQL避免重复插入

想要插入一条数据,要避免重复插入,想根据某些条件进行筛选,如果有满足条件的数据,则不插入,可以参考如下办法:

INSERT INTO table(column1,column2,column3 ...columnN)

SELECT value1,value2,value3 ...valueN

FROM dual

WHERE NOT EXISTS(

      SELECT *

      FROM table

      WHERE value = ?

);

以上代码中有一个from dual,有的同学可能不知道这个是什么,下面我来告诉大家:

Dual简单的说就是一个空表,Oracle提供的最小的工作表,只有一行一列,具有某些特殊功用.常用在没有目标表的Select中。Dual表由Oracle连同数据字典一同创建,所有的用户都可以用名称DUAL访问该表。

二.  MyBatis choose(when, otherwise)标签

choose (when,otherwize) ,相当于java 语言中的 switch ,与 jstl 中 的 choose 很类似。

"<choose>",

"<when test=\"column != null\">andcolumn = #{columnjdbcType=BIGINT}</when>",

"<otherwise>and column is null</otherwise>",

"</choose>",

choose标签是按顺序判断其内部when标签中的test条件出否成立,如果有一个成立,则 choose 结束。当 choose 中所有 when 的条件都不满则时,则执行 otherwise 中的sql。类似于Java 的 switch 语句,choose 为 switch,when 为 case,otherwise 则为 default。

相关文章

网友评论

      本文标题:MyBatis避免重复插入及choose(when, other

      本文链接:https://www.haomeiwen.com/subject/nyjbuqtx.html