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属性中的判定条件必须用引号包裹,否则会产生错误。
相关推荐
yaoxin5211231 小时前
324. Java Stream API - 实现 Collector 接口:自定义你的流式收集器
java·windows·python
非凡ghost2 小时前
小X分身APP(手机分身类工具)
android·windows·学习·智能手机·软件需求
Bruce_Liuxiaowei3 小时前
渗透测试中的提权漏洞:从低权限到系统控制的全解析
网络·windows·安全
kaizq4 小时前
Windows下基于Python构造Dify可视应用环境[非Dock]
windows·python·dify·大语言模型llm·人工智能ai·智能体agent
取个名字太难了a4 小时前
Win7 x64 内存管理(一)
windows
程序员陆通7 小时前
零基础零成本把Clawdbot(OpenClaw)在Windows电脑上部署起来
windows
盘古工具8 小时前
告别重复数据:Excel禁止重复输入的两种方法
windows·excel
x***r1519 小时前
windows7安装步骤详解(附U盘启动盘制作与常见问题解决)
windows
xyzhan9 小时前
RAD Studio Amalthea Delphi 13.1 Beta深度解析:Delphi重磅更新,原生支持Windows ARM64EC
windows·delphi·rad studio·c++ builder·delphi 13
草履虫建模10 小时前
Java面试应对思路和题库
java·jvm·spring boot·分布式·spring cloud·面试·mybatis