动态sql标签trim的用法

1.场景分析

    在实际的项目需求中,有很多字段数值为空,这时需要我们采取有效的方式避免空值插入数据库,今天主要讲解一下动态sql标签trim的用法

2.实现步骤

实际需求:插入一条用户信息,空值不允许插入

1>取消指定的后缀

①mapper中的sql

id="insertUserInfoByTrim" parameterType="com.cckj.bean.UserInfo">
    INSERT into userinfo
    prefix="(" suffix=")" suffixOverrides=",">
        test="username !=null and username != ''">
            username,
        
        test="sex !=null and sex != ''">
            sex,
        
        test="age !=null">
            age,
        
        test="phone !=null and phone != ''">
            phone,
        
        test="address !=null and address != ''">
            address,
        
    

    prefix="values(" suffix=")" suffixOverrides=",">
        test="username !=null and username != ''">
         #{username,jdbcType=VARCHAR},
        
        test="sex !=null and sex != ''">
            #{sex,jdbcType=CHAR},
        
        test="age !=null">
            #{age,jdbcType=INTEGER},
        
        test="phone !=null and phone != ''">
            #{phone,jdbcType=VARCHAR},
        
        test="address !=null and address != ''">
            #{address,jdbcType=VARCHAR},
        
    
咋地一看,是不是有点辣眼睛?随笔者娓娓道来:

prefix:表示在trim标签内sql语句加上前缀xxx

suffix:表示在trim标签内sql语句加上后缀xxx

suffixOverrides:表示去除最后一个后缀xxx

xxx表示属性引号中的值;

②controller代码

@RequestMapping(value = "/getUserInfoByTrim", produces = "application/json;charset=utf-8")
public String getUserInfoByTrim(HttpServletResponse response,UserInfo userInfo){
    response.setHeader("Access-Control-Allow-Origin","*");
    int i = userInfoService.insertUserInfoByTrim(userInfo);
    return i>0?success("插入成功"):success("插入失败");
}

③测试

动态sql标签trim的用法_第1张图片

④数据库验证


2>取消指定的前缀

①mapper中的sql

prefixOverrides:表示去除第一个前缀and或者or

②controller代码

@RequestMapping(value = "/getUserInfoByWhere", produces = "application/json;charset=utf-8")
public Map,Object> getUserInfoByWhere(HttpServletResponse response,String username,String phone){
    response.setHeader("Access-Control-Allow-Origin","*");
    HashMap map = new HashMap();
    map.put("username",username);
    map.put("phone",phone);
    List userList = userInfoService.selectInfoByWhere(map);
    Map,Object> map1 = new HashMap<>();
    map1.put("userlist",userList);
    map1.put("status",1);
    return map1;
}
③测试

动态sql标签trim的用法_第2张图片

好了,game over! 我是张星,欢迎加入博主技术交流群,群号:313145288


你可能感兴趣的:(mybatis)