专栏名称: 芋道源码
纯 Java 源码分享公众号,目前有「Dubbo」「SpringCloud」「Java 并发」「RocketMQ」「Sharding-JDBC」「MyCAT」「Elastic-Job」「SkyWalking」「Spring」等等
目录
相关文章推荐
芋道源码  ·  一款颜值超高,功能还特别强大的SSH工具 ·  3 小时前  
java1234  ·  这招聘环境,绷不住了。。 ·  3 小时前  
java1234  ·  这招聘环境,绷不住了。。 ·  3 小时前  
Java编程精选  ·  因“过于痴迷”AI,50+岁程序员被公司开除 ... ·  18 小时前  
芋道源码  ·  5.6K ... ·  昨天  
51好读  ›  专栏  ›  芋道源码

聊聊 Mybatis 动态 SQL

芋道源码  · 公众号  · Java  · 2025-05-12 09:30

正文

请到「今天看啥」查看全文


  • 2 人生第一次线上OOM事故
  • 3 前后端参数校验
  • 4 复用和专用要做平衡
  • 5 防御性编程意识
  • 6 写到最后

  • 这篇文章,我们聊聊 Mybatis 动态 SQL  ,以及我对于编程技巧的几点思考 ,希望对大家有所启发。

    1 什么是 Mybatis 动态SQL

    如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。

    Mybatis  借助功能强大 OGNL 表达式,可以根据参数条件,动态生成执行 SQL 。

    使用动态 SQL 最常见情景是根据条件包含 where 子句的一部分。

    这条语句提供了可选的查询博客文章列表 ,如果不传入 “title”,那么所有处于 “ACTIVE” 状态的 博客都会返回。

    如果传入了 “title” 参数,那么就会对 “title” 一列进行模糊查找并返回对应的 BLOG 结果。

    如果希望通过 “title” 和 “author” 两个参数都可以搜索,只需要加入另一个条件即可,见下图:

    我们也可以使用 where 标签,该标签只会在子元素返回任何内容的情况下才插入 “WHERE” 子句。而且,若子句的开头为 “AND” 或 “OR”,where 标签也会将它们去除。

    Mybatis 还支持 choose (when, otherwise)、trim (where, set)、foreach 等其他的动态标签,这里就不一一赘述了。

    基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能







    请到「今天看啥」查看全文