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属性中的判定条件必须用引号包裹,否则会产生错误。
相关推荐
sunnyday04262 小时前
Spring Boot 自定义 Starter 实战:从创建到使用的完整指南
spring boot·后端·mybatis
软件资深者2 小时前
HP M126a打印机,系统不支持请求的命令或者资源管理器出错
windows·windows11·系统修复
SJjiemo2 小时前
TreeSize Pro 专业磁盘空间分析
windows
小北方城市网2 小时前
Redis 分布式锁与缓存三大问题解决方案
spring boot·redis·分布式·后端·缓存·wpf·mybatis
摸鱼仙人~5 小时前
构建基于 JSON 模板的可插拔通用LLM信息提取系统
windows
Dontla6 小时前
Mybatis Introduction (Java ORM Framework)
java·开发语言·mybatis
特立独行的猫a6 小时前
claude code 在windows下的最简单安装方法
windows·claude·安装
一点事7 小时前
windows:zookeeper下载安装教程
windows·分布式·zookeeper
FL16238631299 小时前
文件或者文件夹存在但是删除提示项目文件不存在解决方法
windows
Knight_AL9 小时前
Spring Boot 多模块项目中优雅实现自动配置(基于 AutoConfiguration.imports)
java·spring boot·mybatis