MyBatis在注解中使用动态查询

以前为了使用注解并在注解中融入动态查询,会使用Provider。后来发现只要加入"<script>包含动态查询的SQL语句</script>"就可以了。

例如:

sql 复制代码
    @Select("<script>" +
            "select  v.*,u.avatar,u.nickname from videos v join users u on v.uid = u.id " +
            "<where>" +
            "<if test= \'keyword!=null and keyword!=\"\" \' >" +
            " v.video_desc like '%${keyword}%'" +
            "</if> " +
            "and v.status = 1 " +
            "</where>" +
            "order by v.create_time desc"+
            "</script>")
    public List<UserVideosResp> getAllVideosByKeyword(String keyword);

需要提示两点的是:

  1. SQL语句是使用字符串的拼接形成的,要特别注意组成SQL语句的字符串后面是不是有足够的空格。字符串拼接出来的SQL是不是符合SQL应有的语法格式。
  2. <if test='...'> if标签写在test属性中的判定条件必须用引号包裹,否则会产生错误。
相关推荐
这儿有一堆花1 小时前
用原生脚本编写无害恶作剧
windows
因我你好久不见1 小时前
Windows部署springboot jar支持开机自启动
windows·spring boot·jar
夜流冰2 小时前
Excel - MS Support for Excel: 2 Collaborate
数据库·windows·excel
林瞅瞅2 小时前
PowerShell 启动卡顿?内存飙升?原来是 800MB 的历史记录在作祟!
windows
Shepherd06193 小时前
【Windows Server 实战】WAC 反向代理配置
windows
云小逸3 小时前
【windows系统编程】第一章 Windows 系统核心架构与基础概念
windows·架构
怣疯knight5 小时前
Docker Desktop 4.55.0版本安装成功教程
windows·docker
liulilittle6 小时前
VEthernet 框架实现 tun2socks 的技术原理
网络·windows·c#·信息与通信·通信
独钓寒江雨6 小时前
win11在安全模式下删除360tray.exe
windows·电脑
memgLIFE7 小时前
mybatis数据库查询
数据库·oracle·mybatis