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属性中的判定条件必须用引号包裹,否则会产生错误。
相关推荐
christine-rr9 分钟前
windows系统上node.js安装配置教程
前端·windows·npm·node.js
攻城狮7号38 分钟前
【AI时代速通QT】第十节:在 Windows 上配置vs和qmake环境手动编译 Qt 项目
windows·qt·makefile·visual studio·qmake·vcvarsall·nmake/jom
xitianxiaofeixue1 小时前
18262631023123-竞赛第一题
windows
小福气_1 小时前
Windows 问题解决方案
windows
rockmelodies1 小时前
PostgreSQL 18.1.1 Windows x64 二进制版本的安装步骤:
数据库·windows·postgresql
Dev7z1 小时前
在 Windows 和Linux上启动 Redis(本机开发用)
数据库·windows·redis
小二·9 小时前
MyBatis基础入门《五》接口方式:Insert、Update、Delete 操作详解
mybatis
小二·9 小时前
MyBatis基础入门《四》接口方式:Select查询集合
mybatis
diegoXie12 小时前
【Python】 中的 * 与 **:Packing 与 Unpacking
开发语言·windows·python
期待のcode17 小时前
MyBatis-Plus通用Service
java·后端·mybatis·springboot