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属性中的判定条件必须用引号包裹,否则会产生错误。
相关推荐
2501_9399982014 小时前
【2026.5.19 更新】 Win11 25H2 26200.8521 镜像下载
windows
ni_darling16 小时前
win11任务栏居左,win11右键菜单栏设置,win11改回win10设置项
windows
玖釉-16 小时前
旋转图像:从矩阵转置、镜像到坐标变换的系统理解
c++·windows·算法·图形渲染
家有两宝,感恩遇见16 小时前
windows安装claude code
windows
yaoxin52112317 小时前
414. Java 文件操作基础 - 批量压缩与索引:将154首十四行诗高效存储为带目录的二进制文件
java·windows·python
JAVA社区17 小时前
Java进阶全套教程(三)—— Spring框架核心精讲
java·开发语言·spring·面试·职场和发展·mybatis
早睡身体真不戳17 小时前
Cacheable List 接口二次读取报错
windows
shandianchengzi17 小时前
【记录】联想|Thinkpad雷电接口连接带鱼屏显示器,画面被异常拉伸怎么解决?
windows·计算机外设·显示器·联想·thinkpad
zandy101118 小时前
2026 主流技术栈:hermes agent多环境安装配置:Windows/Mac/Linux
linux·windows·macos
夜雪闻竹19 小时前
MCP Server 集成:让 AI Agent 自动调用知识库
人工智能·windows·knowledge graph