MybatisPlus修改時空字段無法修改的解決方案

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;
	}

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: