美文网首页
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