情况一:不需要更新进数据库
情况二:需要更新进数据库 (推荐方法3)
sql语句 update字段null不能用is null
update字段为 null 值时,
要用
set column = null,
而不是
set column is null
✖ UPDATE tableA set 字段a is null WHERE字段b = 条件
例:
mysql>UPDATE t SET col3 is null WHERE col1 = "a"
ERROR 1064 (42000): You have an error in your SQL syntaxcheck the manual that corresponds to your MySQL server version for the right syntax to use near "is null WHERE col1 = "a"" at line 1
〇 UPDATE tableA set 字段a = null WHERE字段b = 条件
例:
mysql>UPDATE t SET col3 = null WHERE col1 = "a"
Query OK, 1 row affected (0.03 sec)
update更新数据时null字段是否更新进数据库总结
情况一:不需要更新进数据库
方法1:直接用sql语句方式,需要更新哪个字段就set xxclounm 即可
方法2:使用mybatis带的方法 updateById(Entry entry),传入entry对象只设置需要更新字段即可。
解析:mybatis-plus在update时对null字段有三种处理策略分别是:
IGNORED:0 忽略
NOT_NULL:1 非 NULL,默认策略
NOT_EMPTY:2 非空
默认策略是忽略null字段,所以只需要将entry中
动态更新其实是很有必要的,特别是在多线程同时更新时。全字段更新容易造成不同线程数据的互相覆盖。Hibernate 有缓存查询结果的机制,更新时会与缓存中的对象比较,然后动态更新修改过的字段。我们可以效仿一下这种机制,想办法在查询时保存一个基础版本,在更新时与基础版本比较,进而实现动态更新。这种机制不能针对具体业务,应该在DAO层做AOP,否则就没意义了。(util.store)欢迎分享,转载请注明来源:内存溢出
评论列表(0条)