MyBatis--动态SQL(在insert动态插入列中使用if)

第一步:先修改sys_user表,给user_email列设置默认值test@mybatis.tk

第二步:定义一个insert方法

1     /*
2      *   动态插入
3      */
4     int insert(SysUser sysUser);

第三步:编写SysUserMapper.xml中的insert方法

 1 <insert id="insert" useGeneratedKeys="true" keyProperty="id">
 2         insert into sys_user(
 3         user_name,user_password,
 4         <if test="userEmail != null and userEmail !=''">
 5             user_email,
 6         </if>
 7         user_info,head_img,create_time)
 8         values(#{userName},#{userPassword},
 9         <if test="userEmail != null and userEmail !=''">
10             #{userEmail},
11         </if>
12         #{userInfo},#{headImg},#{createTime})
13     </insert>

第四步:编写测试类

 1    @Test
 2         void test4(){
 3             SysUser user = new SysUser();
 4             user.setUserName("张三");
 5             user.setUserPassword("123456");
 6             user.setUserInfo("test_info");
 7             user.setCreateTime(new Date());
 8             userMapper.insert(user);
 9             //获取到插入的这条数据
10             user =userMapper.selectById(user.getId());
11             System.out.println(user);
12         }

运行后数据库结果--

 在新增的user中,我们并没有给userEmail属性赋值,这样就会使用数据库默认的值。

原文地址:https://www.cnblogs.com/wx60079/p/13206011.html