@Update动态更新

动态更新的sql语句书写示例 :

7.0 请求示例 :

          {
            "id": 44,
                "createBy": "薛衎22",
                "updateBy": null,
                "updateTime": null,
                "description": "基础资源组件",
                "name": null,
                "parentId": null,
                "type": 1,
                "httpMethod": null,
                "sortOrder": null,
                "component": "动态更新2",
                "url": null,
                "title": null,
                "icon": null,
                "level": 3,
                "buttonType": null,
                "status": 1,
                "children": null,
                "buttonTypes": null,
                "expand": true,
                "checked": false
          }

7.1 controller及入口示例:

      @PostMapping("/resource/update/selective")
          public EosResponse  updateResourceInfoBySelective(@RequestBody Resource resource , HttpServletRequest request){
              try {

                  String token = JwtTokenUtils.getTokenFromHttpRequest(request);
                  StaffBaseInfo baseInfo = JwtTokenUtils.getStaffBaseInfoFromToken(token);
                  Boolean  result =  resourceService.updateResourceInfoBySelective(baseInfo , resource);
                  if(result){
                      return  new EosResponse().success("更新资源数据数据成功");
                  }
                  return new EosResponse().fail("更新资源数据失败");
              } catch (Exception e) {
                  e.printStackTrace();
                  return new EosResponse().fail("更新资源数据失败:"+e.getMessage());
              }

          }

7.2 service层调用:

       @Override
          public Boolean updateResourceInfoBySelective(StaffBaseInfo baseInfo , Resource resource) {
              resource.setUpdateTime(new Date());
              resource.setCreateBy(baseInfo.getStaffCode());
              return resourceMapper.updateResourceInfoBySelective(resource);
          }

7.3 Mapper层书写动态update的sql语句:
注意update语句里的逗号需要根据自己的表合理安排位置 (最后一个参数无逗号) :

 update tf_m_resource  SET create_by = 'hh' ,   update_time = CURRENT_TIMESTAMP ,  description = 222   ,  type = 1  ,    level = 1 ,   status = 1   where id = 62:

       @Update({"<script>",
                  "update tf_m_resource",
                    "<set>",
                  "<if test='createBy != null'>",
                  "create_by = #{createBy} ,",
                  "</if>",
                  "<if test='createTime != null'>",
                  "create_time = #{createTime} ,",
                  "</if>",
                  "<if test='updateTime != null'>",
                  "update_time = #{updateTime} ,",
                  "</if>",
                  "<if test='description != null'>",
                  "description = #{description} ,",
                  "</if>",
                  "<if test='name != null'>",
                  "name = #{name} ,",
                  "</if>",
                  "<if test='parentId != null'>",
                  "parent_id = #{parentId} ,",
                  "</if>",
                  "<if test='type != null'>",
                  "type = #{type} ,",
                  "</if>",
                  "<if test='httpMethod != null'>",
                  "http_method = #{httpMethod} ,",
                  "</if>",
                  "<if test='sortOrder != null'>",
                  "sort_order = #{sortOrder} ,",
                  "</if>",
                  "<if test='url != null'>",
                  "url = #{url} ,",
                  "</if>",
                  "<if test='title != null'>",
                  "title = #{title} ,",
                  "</if>",
                  "<if test='icon != null'>",
                  "icon = #{icon} ," ,
                  "</if>",
                  "<if test='level != null'>",
                  "level = #{level} ,",
                  "</if>",
                  "<if test='buttonTypes != null'>",
                  "button_type = #{buttonTypes} ,",
                  "</if>",
                  "<if test='status != null'>",
                  "status = #{status} ,",
                  "</if>",
                  "update_by = CURRENT_TIMESTAMP ",
                  "</set>",
                  "where id = #{id}",
                  "</script>"})
          Boolean updateResourceInfoBySelective(Resource resource);

版权声明:本文为qq_24005787原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。