mybatis避免插入相同的数据

时间:2019-06-25 07:08:54

标签: java mybatis

mybatis的新手

insert into table(name, age) values (name_value, age_value)

一条记录的名称和值与另一条记录相同

如何使用mybatis避免这种情况?

我正在使用xml创建映射器

1 个答案:

答案 0 :(得分:0)

这个问题尚不清楚,但是,您必须在数据库中定义一个唯一键。因此,如果您指定name和age列是唯一的,则dbms会阻止所有具有name和age的新行的所有插入。

这是mybatis查询的示例:

INSERT INTO mytable
        (name, age)
    VALUES
        (
        #{name},
        #{age}
        )
    ON CONFLICT (name,age)
    DO NOTHING

因此它尝试在表中插入一个值。如果dbms由于存在唯一键(由[名称和年龄]组成)而返回错误,它将执行另一个操作。您可以在DO后面放置一个UPDATE语句,而不是DO NOTHING。