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属性中的判定条件必须用引号包裹,否则会产生错误。
相关推荐
美酒没故事°15 小时前
Open WebUI安装指南。搭建自己的自托管 AI 平台
人工智能·windows·ai
那个失眠的夜16 小时前
Mybatis延迟加载策略
xml·java·数据库·maven·mybatis
一个欠登儿程序员17 小时前
在国产服务器上通过 Docker 部署 Windows 虚拟机
服务器·windows·docker
身如柳絮随风扬18 小时前
MyBatis 插件原理详解:从拦截器到动态代理,手写一个分页插件
java·mybatis
爱宇阳18 小时前
WSL2 隔离 Windows PATH 实战指南
windows·环境变量
ALex_zry18 小时前
C++模板元编程实战技巧
网络·c++·windows
I疯子18 小时前
2026-04-08 打卡第 5 天
开发语言·windows·python
一个人旅程~19 小时前
旧笔记本电脑安装win10精简版LTSB&win10LTSC&linuxmint作为三系统的操作指导书(以DELL n4020为例)
linux·windows·经验分享·电脑
开开心心就好19 小时前
支持自定义名单的实用随机抽签工具
windows·计算机视觉·计算机外设·excel·散列表·启发式算法·csdn开发云
小江的记录本20 小时前
【JEECG Boot】 JEECG Boot——数据字典管理 系统性知识体系全解析
java·前端·spring boot·后端·spring·spring cloud·mybatis