MybatisPlus修改时空字段无法修改的解决方案

目录
  • MybatisPlus空字段无法修改
    • 点开修改
    • 这个时候,在实体类中加入
    • 这行注释的意思是
  • Mybatis-Plus修改指定字段
    • 核心代码

MybatisPlus空字段无法修改

点开修改

数据为空时,点击确定,可列表出现的数据还是为原来的数据

查看后台的打印输出,发现没有更新的这2个字段

这个时候,在实体类中加入

这行注释的意思是

在属性执行修改时,将自动填充一个值(默认为null),即将字段修改为空,而不是不做修改。

Mybatis-Plus修改指定字段

核心代码

/**
	 * 修改密码(只能修改自己的密码)
	 *
	 * @author zhangxuewei
	 * @param userID
	 * @param password
	 * @param session
	 * @return
	 */
	@ResponseBody
	@RequestMapping(value = "/updateUserPWD", method = RequestMethod.POST)
	public ResultCode updateUserPWD(@RequestParam(value = "password_old") String password,
			@RequestParam(value = "password_new") String newpassword, HttpSession session) {
		logger.info("updateUserPWD ...........");
		User user1 = (User) session.getAttribute("sessionUser");
		ResultCode res = new ResultCode();
		EntityWrapper<User> ew = new EntityWrapper<>();
		ew.eq("user_name", user1.getUserName());
		User user2=  userService.selectOne(ew);
		if(user2.getPassWord().equals(AIAppUtils.encrypt(password))) {
			if (StringUtils.isNotBlank(password) && StringUtils.isNotBlank(newpassword)) {
				String setSql = "pass_word = " + "'" + AIAppUtils.encrypt(newpassword) + "'";
				EntityWrapper<User> ew1 = new EntityWrapper<>();

				ew1.eq("user_id", user1.getUserID());

				try {
					userService.updateForSet(setSql, ew1);
					session.removeAttribute("sessionUser");
					res.setCode(0);

				} catch (Exception e) {
					// TODO: handle exception
					res.setCode(1);
				}
			} else {
				// 参数不能为空
				res.setCode(1);
				res.setMsg("参数不能为空");
			}

		}else {
			res.setCode(1);
			res.setMsg("原始密码不正确!");
		}

		return res;
	}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 解决mybatis plus字段为null或空字符串无法保存到数据库的问题

    背景 项目中集成了mybatis plus, 今天在做后台的一个常规的增删改查时,发现字段值为null时,这个字段不会被保存到数据库 解决办法 在字段上加上 @TableField(strategy = FieldStrategy.IGNORED) strategy字段更新插入策略属性说明: IGNORED(0): "忽略判断", 所有字段都更新和插入 NOT_NULL(1): "非 NULL 判断", 只更新和插入非NULL值 NOT_EMPTY(2): &quo

  • Mybatis Plus 字段为空值时执行更新方法未更新解决方案

    问题描述 系统测试过程中,同事测试出使用Mybatis Plus提供的封装方法UpdateById()时,字段从前台传入的数据为空值,但是执行方法后该字段未得到更新. 问题重现 因涉及到公司层面的模型.数据,本文都为测试模型和例子. 实体类: @Data @TableName("shop_item") public class ShopItem implements Serializable { private static final long serialVersionUID =

  • MybatisPlus 不修改全局策略和字段注解如何将字段更新为null

    mybatis-plus 以下简称mp,目前应该也算是主流的一款数据访问层应用框架.源于其对mybatis 的近乎完美的封装,让我们在使用的时候无比的顺滑, 几乎提供了所有单表操作的方法,大大提升了效率.并且这款框架还是国产的哦,没了解过的可以去了解一下. 回归正题,我们这次来讲一下,怎么样通过mp将数据库中的一个字段更新为null. 可能很多人会觉得奇怪,更新为null, 直接set field = null 不就可以了.这里大家要注意一下,一般情况,我们在使用mp的时候,他的默认策略是空不更

  • MybatisPlus修改时空字段无法修改的解决方案

    目录 MybatisPlus空字段无法修改 点开修改 这个时候,在实体类中加入 这行注释的意思是 Mybatis-Plus修改指定字段 核心代码 MybatisPlus空字段无法修改 点开修改 数据为空时,点击确定,可列表出现的数据还是为原来的数据 查看后台的打印输出,发现没有更新的这2个字段 这个时候,在实体类中加入 这行注释的意思是 在属性执行修改时,将自动填充一个值(默认为null),即将字段修改为空,而不是不做修改. Mybatis-Plus修改指定字段 核心代码 /** * 修改密码(

  • 使用mybatis-plus想要修改某字段为null问题

    目录 mybatis-plus想要修改某字段为null 问题场景 原因 解决办法 mybatis-plus更新字段为null不生效 异常说明 原理 解决办法 总结 mybatis-plus想要修改某字段为null 问题场景 使用mybatis + mybatisPlus进行修改某字段,想要将其设为null, 但执行时没有成功. 原因 mybatis-plus会将所有为空的字段在修改时进行过滤,不进行设为空的修改操作. 解决办法 在相关字段上加上注解 @TableField(strategy =

  • MySQL常用的建表、添加字段、修改字段、添加索引SQL语句写法总结

    本文实例讲述了MySQL常用的建表.添加字段.修改字段.添加索引SQL语句写法.分享给大家供大家参考,具体如下: 建表: DROP TABLE IF EXISTS bulletin; CREATE TABLE bulletin( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, # 主键 uid INT(11) NOT NULL DEFAULT 0, # 创建者id context VARCHAR(600) NOT NULL DEFAULT '', # 公告

  • 微信内置开发 iOS修改键盘换行为搜索的解决方案

    在微信中搜索的时候, 我们通常使用keycode=13来判断客户是否点击了确定. 在安卓上,唤醒搜索框为确认键没问题,而ios就不敢苟同了,ios显示为换行,对于客户使用体验非常不好. 解决方案: html代码. <form @submit.prevent action="#"> <input class="search_input" ref="input" @focus="searchFocus" v-mo

  • 解决django model修改添加字段报错的问题

    关于django models中添加字段的一个小节,记录下 django的models中已经写好了字段,可是后面我又想在添加一些字段,于是就在models中添加了字段 ,发现报错了 报错的类型: 字段重复了 不知道的列 : 最后解决的方法 : 到models的目录下打开文件 ,直接把所需的字段添加到第一次编译的文件中 , 重新执行数据库的迁移 ,如果依然有报错,提示有未知的列 ,就查看数据库 ,那个列缺失,就把列给添加上 添加未知的列 至此,重新执行迁移 ,妥妥的成功了 ! 以上这篇解决djan

  • Mysql表数据比较大情况下修改添加字段的方法实例

    前言 如果一张表在后期的维护中,发现需要加字段以满足当下的需求,但是数据量很大有百万甚至千万级的数据,要如何修改表字段呢. 直接执行使用alter语句肯定是不现实的,这涉及到锁表重建表结构等操作,假设这时候还有其他线程在跑,等一天都改不过来. 这里整理一个比较简单的方法 1.对照要操作的表结构创建一张临时表 CREATE TABLE product_copy LIKE product; 2.将要修改的表结构改在临时表上面 3.导出表product数据,并导入到零时表product_copy 4.

  • Mybatis-Plus实现公共字段自动赋值的方法

    目录 1 mybatis-plus实现自动填充指定字段 1.1 需要修改的字段在模型类上添加 1.2 新建一个MetaObjectHandler的实现类 2 通用字段自动填充的最佳实践总结 2.1 调整数据库表结构 2.2 通用维护信息父类-自动赋值的字段 2.3 实体类的实现 2.4 自动赋值的规则 2.5 实现效果 1 mybatis-plus实现自动填充指定字段 首先了解MetaObjectHandler MetaObjectHandler接口是mybatisPlus为我们提供的的一个扩展

  • MyBatis-Plus实现公共字段自动填充功能详解

    目录 1.问题分析 2.实现步骤 3. 实现字段全局填充 1.问题分析 我们在开发中经常遇到多个实体类有共同的属性字段,例如在用户注册时需要设置创建时间.创建人.修改时间.修改人等字段,在用户编辑信息时需要设置修改时间和修改人等字段.这些字段属于公共字段,也就是很多表中都有这些字段,能不能对于这些公共字段在某个地方统一处理,来简化开发呢? 答案就是我们可是使用Mybatis Plus提供的公共字段自动填充功能. 2.实现步骤 Mybatis Plus公共字段自动填充,也就是在插入或者更新的时候为

  • asp 隐藏并修改文件的最后修改时间

    源码: 复制代码 代码如下: <% '隐藏并修改文件的最后修改时间的aspshell '原理:通过FSO可以修改文件的属性,比如设置为只读,隐藏,系统等等:FSO中的attributes属性修改文件属性,1只读,2隐藏,4系统文件 ' 通过shell.application可以给文件重新设置一个最后修改时间 '2009/02/24 write by skyfire response.write "<form method=post>" response.write &

  • mybatis-plus 返回部分字段的解决方式

    mybatis-plus的代码生成器会在实体类中生成数据库所有字段,我们去用mapper接口查询时,会返回数据库所有的字段. 但有些字段不是我们想要的,比如:deleted,所以我们可以在不需要的字段上面加@JsonIgnore注解,返回给前端的时候会自动把这个字段去除. 补充知识:Mybatis-Plus只查询特定字段与创建子类方法 Mybatis-Plus查询特定字段例子: Seal seal = sealService.selectOne( new EntityWrapper<Seal>

随机推荐