mybatis插入对象,如果存在则修改
时间: 2023-09-30 15:03:30 浏览: 51
可以使用 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 对象参数,即可实现插入对象并且存在则修改的操作。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)