mybatis3之后,采用了功能强大的OGNL表达式语言消除了许多其它繁琐的标签,现在动态SQL在xml中支持的几种标签:

  • if
  • choose(when、otherwise)
  • trim(where、set)
  • foreach
  • bind

 一.if标签

if标签通常用于where语句中,通过判断参数值来决定是否使用某个查询条件,它也经常用于UPDATE语句中判断是否更新某一个字段,还可以再INSERT语句中用来判断是否插入某个字段的值。

1.1 在where条件中使用if

用法:含义就是当if满足时,就执行标签体中的内容。

需求:准备如下数据表,当只输入用户名的时候,就根据这个用户名进行模糊查询匹配的用户;当只输入邮箱时,就根据邮箱完全匹配用户胡;当两者都同时输入时,就需要用这两个条件去查询匹配的用户。

表格:

Mybatis中的动态SQL在xml中支持的几种常用标签

 

贴下关键代码:

 

 (1)controller

@PostMapping("/selectByUser")
    public List<SysUser> selectByUser(){
        SysUser sysUser=new SysUser();
        sysUser.setUserName("tes");
        return userService.selectByUser(sysUser);
    }

说明:这里只传入了userName。而userEmail为null

(2)service实现类

Mybatis中的动态SQL在xml中支持的几种常用标签
1  @Override
2     public List<SysUser> selectByUser(SysUser sysUser) {
3         return userMapper.selectByUser(sysUser);
4     }
View Code

相关文章:

  • 2021-09-02
猜你喜欢
  • 2021-11-28
  • 2022-01-25
  • 2022-01-14
  • 2022-12-23
  • 2022-12-23
  • 2021-09-10
相关资源
相似解决方案