mybatis设置null没有更新
时间: 2024-02-05 11:14:16 浏览: 177
在 MyBatis 中,如果要将某个字段更新为 NULL,需要使用 `<set>` 标签来指定 NULL 值。比如,如果要将表中的 `column1` 字段设置为 NULL,可以这样编写 SQL 语句:
```
UPDATE table SET column1 = NULL WHERE id = #{id}
```
如果使用 MyBatis 的 XML 映射文件来编写 SQL 语句,可以这样写:
```
<update id="updateTable">
UPDATE table
<set>
column1 = NULL
</set>
WHERE id = #{id}
</update>
```
注意,这里使用了 `<set>` 标签来指定要更新的字段和对应的值。如果没有使用 `<set>` 标签,则可能会出现原来的值被清空的情况。
相关问题
mybatis plus在实体中设置null没有更新
在 MyBatis Plus 中,如果实体中的属性值为 null,那么在执行 update 操作时,对应的字段是不会被更新的。这是因为 MyBatis Plus 默认会忽略实体中值为 null 的属性。
如果你想要将实体中的 null 值更新到数据库中,可以通过设置 MyBatis Plus 的全局配置项 `db-config.xml` 中的 `insertStrategy` 和 `updateStrategy` 属性来实现。具体操作如下:
1. 在 `db-config.xml` 中添加如下配置:
```
<global-config>
<db-config>
<insert-strategy select="com.baomidou.mybatisplus.enums.FieldStrategy.NOT_EMPTY"/>
<update-strategy select="com.baomidou.mybatisplus.enums.FieldStrategy.NOT_EMPTY"/>
</db-config>
</global-config>
```
2. 在实体类中,需要将需要更新的属性设置为 `null`:
```
User user = new User();
user.setId(1L);
user.setName(null); // 将 name 属性设置为 null
userMapper.updateById(user); // 执行更新操作
```
这样就可以将实体中的 null 值更新到数据库中了。
mybatis isnull
MyBatis provides a built-in function called `isnull` that checks whether a value is null or not.
You can use this function in your MyBatis XML mapper files to conditionally execute a SQL statement based on whether a value is null or not.
Here's an example:
```xml
<select id="getUserById" resultType="User">
SELECT *
FROM users
WHERE id = #{id}
<if test="@org.apache.ibatis.jdbc.Null.null == username">
AND username IS NULL
</if>
<if test="@org.apache.ibatis.jdbc.NotNull@notNull(username)">
AND username = #{username}
</if>
</select>
```
In this example, the `isnull` function is used to check whether the `username` parameter is null or not. If it is null, the SQL statement will include a condition that checks whether the `username` column in the `users` table is null. If it is not null, the SQL statement will include a condition that checks whether the `username` column in the `users` table matches the `username` parameter.
Note that in order to use the `isnull` function, you need to include the `mybatis-3-jdbc-type-converter` dependency in your project.
阅读全文