mybatis插入对象,如果存在则修改
时间: 2023-09-30 21:03:30 浏览: 83
mybatis项目,增,删,改,查
5星 · 资源好评率100%
可以使用 MyBatis 的动态 SQL 功能来实现插入对象并且存在则修改的操作。具体实现如下:
1. 定义一个 insertOrUpdate 的 SQL 语句,使用 MySQL 的 `on duplicate key update` 语句来实现存在则修改的操作。
```xml
<insert id="insertOrUpdate" parameterType="com.example.model.User">
insert into user (id, name, age, ...)
values (#{id}, #{name}, #{age}, ...)
on duplicate key update
name=values(name),
age=values(age),
...
</insert>
```
其中,`id` 是主键列,如果已经存在相同的主键值,则会执行更新操作。
2. 在 Java 代码中调用 `insertOrUpdate` 方法,并传入一个 User 对象参数,即可实现插入对象并且存在则修改的操作。
完整的 MyBatis 映射文件示例:
```xml
<mapper namespace="com.example.mapper">
<insert id="insertOrUpdate" parameterType="com.example.model.User">
insert into user (id, name, age, ...)
values (#{id}, #{name}, #{age}, ...)
on duplicate key update
name=values(name),
age=values(age),
...
</insert>
</mapper>
```
这样,在 Java 代码中调用 `insertOrUpdate` 方法,并传入一个 User 对象参数,即可实现插入对象并且存在则修改的操作。
阅读全文