在 Mybatis 中,使用注解可以很方便的进行sql操作,但很多动态 SQL 都是由 xml 配置实现的。而随着 SpringBoot的逐渐发展,越来越多的配置由配置文件转成注解的形式。其中包括动态 SQL 。

Mybatis 的注解中,使用太过长的sql语句看起来很不美观。

@Select("SELECT title from book_tbl where id = #{id}")

如果想要在 mapper 中进行非必要关键字的查询时就需要使用动态 SQL,与 xml 配置不同的是,@Select注解中 SQL 语句必须以 <script> 标签包裹。

@Select("<script>"+"SELECT id " +"from book_tbl" +"<where>" +"<if test 'company_id != null'>" +"and company_id = #{company_id}" +"</if>" +"<if test 'title != null'>" +"and title like CONCAT('%',#{title},'%')" +"</if>" +"</where>" +"ORDER BY create_time desc,rank desc" +"</script>")

感谢大家的耐心阅读,如有建议请私信或评论留言

MyBatis 注解实现动态SQL相关推荐

  1. mybatis注解开发动态sql

    mybatis注解开发动态sql 本篇来讲一下如何使用mybatis注解模式中的动态sql 先来讲一下什么是动态sql 在我们实际开发的时候可能会出现很多方法需要一条很相似的sql语句来进行增删改查, ...

  2. Mybatis 注解开发 + 动态SQL

    Hello 大家好我是橙子同学,今天分享注解Mybatis注解开发+动态sql 目录 每文一铺垫(今天有小插曲哦) 注解开发 添加 @Insert 删除 @Delete 查询 @Select 修改 @ ...

  3. SpringBoot集成Groovy、Mybatis注解 实现动态SQL,帮你摆脱繁琐的XML配置

    SpringBoot的超简洁配置,为我们省去了宝贵的配置时间. Mybatis3在这方面也提供了很好的支持,通过注解让我们摆脱了繁琐的mapper xml,写DAO层的时候再也不用在java接口和xm ...

  4. Mybatis入门之动态sql

    Mybatis入门之动态sql 通过mybatis提供的各种标签方法实现动态拼接sql. 1.if.where.sql.include标签(条件.sql片段) <sql id="sel ...

  5. Mybatis映射文件动态SQL语句-01

    因为在很多业务逻辑复杂的项目中,往往不是简单的sql语句就能查询出来自己想要的数据,所有mybatis引入了动态sql语句, UserMapper.xml <?xml version=" ...

  6. Java - MyBatis中的动态SQL是什么意思?

    分享一个大牛的人工智能教程.零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net 对于一些复杂的查询,我们可能会指定多个查询条件,但是 ...

  7. SSM—mybatis框架-注解开发-动态sql(where,set,trim,choose,when,foreach)-模糊查询写法-特殊符号处理-缓存

    文章目录 2.0.注解 2.1.动态sql 2.1.1.where 2.1.2.set 2.1.3.trim 2.1.3.1.trim的where 2.1.3.2.trim的set 2.1.4.1.c ...

  8. 若依框架搜索框使用注解写动态SQL

    最近在使用若依前端框架开发项目,遇到了一些问题,当我们在分页时候遇到,数据库中是1,2,3分别代表男,女,未知,的时候怎么样才能在分页的时候返显出来. 直接上代码就ok啦 {field:'status ...

  9. MyBatis自定义自定义动态SQL解析方式

    引子 之前项目中一直使用的是JPA作为ORM框架,最近,新加了一个子服务,使用的是 MyBatis 作为ORM框架.既然用的是MyBatis,那就免不了 循环迭代参数.if 动态SQL查询等. 然而, ...

最新文章

  1. python并发编程方法_Python Futures并发编程详解
  2. 启动namenode报错:Journal Storage Directory /var/bigdata/hadoop/full/dfs/jn/dmgeo not formatted
  3. JavaScript快速入门-ECMAScript本地对象(String)
  4. C++实践参考——数组类运算的实现
  5. Linux服务器数据备份
  6. mongodb 导出时间格式_MongoDB批量将时间戳转为通用日期格式示例代码 _ 蚂蚁视界...
  7. 回测引擎代码分析流程图
  8. 第九章 OGRE中的整个流程
  9. 疯壳AI开源无人机SPI(六轴传感器数据获取)
  10. SAP案例教程CO成本会计后台配置
  11. firefoxos gaia 开发环境
  12. 密码学【java】初探究加密方式之非对称加密
  13. postgresql 使用odbc_fdw连接 sqlserver
  14. ubuntu上安装视频插件
  15. 灰度变换-位图切割(比特平面分层)
  16. 《摩根写给儿子的32封信》 05 读书的经济价值
  17. 计算机启动到桌面就蓝屏怎么办,电脑一开机进入桌面就蓝屏,怎么处理
  18. pb在win10中控制是否使用拼音输入法
  19. PaddleOCR文字检测、标注与识别详细记录
  20. Ubuntu系统开机黑屏,且左上方存在不停闪烁的横杠

热门文章

  1. 定位、CSS3的动画
  2. Python北理工 第六章 组合数据类型
  3. 微信小程序获取整个系统信息及状态栏高度设置
  4. 腾讯毛华:智能交互,AI助力下的新生态
  5. 自用分享丨45个自媒体必备工具素材网站
  6. html 获得div的高度,如何用js获取div不确定的自适应高度(currentStyle与offsetHeight)...
  7. 【死磕 Spring】----- IOC 之 加载 Bean
  8. java中的静态方法是什么
  9. 《挂出个大侠》12.17上线链游玩家|百种武学、探索江湖
  10. 解决Visio流程图在Word中无法显示以及显示不完全的问题