[[toc]]

第三节 set标签

1、相关业务需求举例

实际开发时,对一个实体类对象进行更新。往往不是更新所有字段,而是更新一部分字段。此时页面上的表单往往不会给不修改的字段提供表单项。

  1. <input type="hidden" name="userId" value="5232" />
  2. 年 龄:<input type="text" name="userAge" /><br/><br /> 性 别:<input type="text" name="userGender" /><br/><br /> 坐 标:<input type="text" name="userPosition" /><br/><br /> <!-- 用户名:<input type="text" name="userName" /><br/> --><br /> <!-- 余 额:<input type="text" name="userBalance" /><br/>--><br /> <!-- 等 级:<input type="text" name="userGrade" /><br/> -->
  3. <button type="submit">修改</button>


例如上面的表单,如果服务器端接收表单时,使用的是User这个实体类,那么userName、userBalance、userGrade接收到的数据就是null。
如果不加判断,直接用User对象去更新数据库,在Mapper配置文件中又是每一个字段都更新,那就会把userName、userBalance、userGrade设置为null值,从而造成数据库表中对应数据被破坏。
此时需要我们在Mapper配置文件中,对update语句的set子句进行定制,此时就可以使用动态SQL的set标签。

2、实际配置方式



update t_emp




emp_name=#{empName},


emp_salary=#{empSalary},


where emp_id=#{empId}

上一节 回目录 下一节