当前位置: 首页 > news >正文

Mybatis 动态 SQL - choose, when, otherwise

有时候我们并不希望所有的条件都生效,而是只想在多个选项中选择一个。类似于Java中的switch语句,MyBatis提供了 ​<choose>​元素。

让我们使用上面的例子,但现在如果提供了标题,则只搜索标题;如果提供了作者,则只搜索作者。如果都没有提供,则只返回特色博客(可能是由管理员策略性选择的列表,而不是返回一大堆无意义的随机博客)。

<select id="findActiveBlogLike"resultType="Blog">SELECT * FROM BLOG WHERE state = ‘ACTIVE’<choose><when test="title != null">AND title like #{title}</when><when test="author != null and author.name != null">AND author_name like #{author.name}</when><otherwise>AND featured = 1</otherwise></choose>
</select>

http://www.lryc.cn/news/268860.html

相关文章:

  • idea Spring Boot项目使用JPA创建与数据库链接
  • redis基础知识
  • 最短路径(数据结构实训)(难度系数100)
  • 基于SSM实现的电动汽车充电网点管理系统
  • Android ImageView如何使用.svg格式图片
  • 力扣热题100道-子串篇
  • day3--Shell
  • 【数据结构】插入排序、选择排序、冒泡排序、希尔排序、堆排序
  • TiDB 7.5 LTS 发版丨提升规模化场景下关键应用的稳定性和成本的灵活性
  • 服务器数据恢复-误操作导致xfs分区数据丢失的数据恢复案例
  • 安装Kubernetes1.23、kubesphere3.4、若依项目自动打包部署到K8S记录
  • (三) `MaterializedMySQL`同步机制解读
  • 使用 stream 流构建树(不使用递归)
  • docker 部署 个人网页版 wps office
  • windows进行udp端口转发,解决项目中服务器收不到组播数据的问题
  • 抖音、小红书、视频号是如何判定是否限流的?
  • frida native hook 技术( frida hook so层函数)
  • SpringBoot运维(三)-- 多环境开发(yml多文件版)
  • Vue 修饰符有哪些
  • 哈希桶的模拟实现【C++】
  • 磁盘相关知识
  • FTP原理与配置
  • ios环境搭建_xcode安装及运行源码
  • C++ 151. 反转字符串中的单词
  • 腾讯云服务器如何买(购买腾讯云服务器的详细步骤)
  • 48道Linux面试题
  • (13)Linux 进程的优先级、进程的切换以及环境变量等
  • 数的分解(100%用例)C卷 (JavaPythonNode.jsC++)
  • 数字调制学习总结
  • AcWing 1129. 热浪(单源最短路)