mybatis中<choose>标签的用法说明

目录
  • choose标签用法
  • choose动态用法

choose标签用法

choose 标签是按顺序判断其内部 when 标签中的 test 条件出否成立,如果有一个成立,则 choose 结束。

当 choose 中所有 when 的条件都不满则时,则执行 otherwise 中的sql。otherwise 也可以不写。

choose动态用法

choose有时候我们不想应用所有的条件,而是想从多个条件中选择一个(满足第一个填写的条件,即使传入了多个参数)

  • 如果昵称不为空,加一个昵称的条件
  • 如果性别不为空,加一个性别的条件
  • 如果地址不为空,加一个地址的条件

区别与if(如果有参数,就生效),这里choose就是只要满足一个,就生效(当上方所有条件都不满足的时候,otherwise就生效,等同于java的switch....case....)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • MyBatis动态SQL标签的用法详解

    1.MyBatis动态SQL MyBatis 的强大特性之一便是它的动态 SQL,即拼接SQL字符串.如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦.拼接的时候要确保不能忘了必要的空格,还要注意省掉列名列表最后的逗号.利用动态 SQL 这一特性可以彻底摆脱这种痛苦. 通常使用动态 SQL 不可能是独立的一部分,MyBatis 当然使用一种强大的动态 SQL 语言来改进这种情形,这种语言可以被用在任意的 SQL 映射语句中. 动态 SQL 元素和

  • MyBatis中XML 映射文件中常见的标签说明

    SQL 映射文件只有很少的几个顶级元素(按照应被定义的顺序列出): cache – 对给定命名空间的缓存配置. cache-ref – 对其他命名空间缓存配置的引用. resultMap – 是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象. parameterMap – 已被废弃!老式风格的参数映射.更好的办法是使用内联参数,此元素可能在将来被移除. sql – 可被其他语句引用的可重用语句块. insert – 映射插入语句 update – 映射更新语句 delete –

  • MyBatis的9种动态标签详解

    目录 前言 动态标签用法 1.if 2.choose.when.otherwise 3.where 4.set 5.trim 6.foreach 7.bind 前言 MyBatis提供了9种动态SQL标签:trim.where.set.foreach.if.choose.when.otherwise.bind: 其执行原理为,使用OGNL从SQL参数对象中计算表达式的值,根据表达式的值动态拼接SQL,以此来完成动态SQL的功能. 动态标签用法 1.if If : 当参数满足条件才会执行某个条件

  • mybatis中<choose>标签的用法说明

    目录 choose标签用法 choose动态用法 choose标签用法 choose 标签是按顺序判断其内部 when 标签中的 test 条件出否成立,如果有一个成立,则 choose 结束. 当 choose 中所有 when 的条件都不满则时,则执行 otherwise 中的sql.otherwise 也可以不写. choose动态用法 choose有时候我们不想应用所有的条件,而是想从多个条件中选择一个(满足第一个填写的条件,即使传入了多个参数) 如果昵称不为空,加一个昵称的条件 如果性

  • Mybatis中Mapper标签总结大全

    一.标签分类 定义SQL语句 insert delete update select 配置关联关系 collection association 配置java对象属性与查询结果集中列名的对应关系 resultMap 控制动态SQL拼接 foreach if choose 格式化输出 where set trim 定义常量 sql 其他 include 二.标签总结 1. 基础SQL标签 1.1 查询select 标签属性 id 唯一的名称,对应dao中mapper的接口名称 paramterTy

  • Maven中resources标签的用法详解

    目录 一.resources作用 1.打包编译作用 2.配置文件取pom当中的值 二.演示resources打包编译的作用 1.创建springboot项目 2.进行编译打包 3.出现问题 4.得出结论 5.添加resources进行解决 三.演示application取pom当中值 1.创建springboot项目 2.进行编译打包 3.得出结论 4.添加resources进行解决 5.疑问 在开发当中,我们一般打包都是利用maven打包的,在项目当中我们经常会看见resources标签,可能

  • mybatis 中 foreach collection的用法小结(三种)

    foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合. foreach元素的属性主要有 item,index,collection,open,separator,close. item表示集合中每一个元素进行迭代时的别名,     index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置,     open表示该语句以什么开始,     separator表示在每次进行迭代之间以什么符号作为分隔 符,     close表示以什么结束. 在使用foreach的时候

  • JavaScript中的标签语句用法分析

    本文实例分析了JavaScript中的标签语句用法.分享给大家供大家参考.具体分析如下: 最近在看w3school,然后看到js部分, <!DOCTYPE html> <html> <body> <script> cars=["BMW","Volvo","Saab","Ford"]; list: { document.write(cars[0] + "<br>

  • mybatis中resultMap 标签的使用教程

    MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注SQL本身,而不需要花费精力去处理例如注册驱动.创建connection.创建statement.手动设置参数.结果集检索等jdbc繁杂的过程代码. MyBatis特点: 1.开源的优秀持久层框架 2.SQL语句与代码分离 3.面向配置的编程 4.良好支持复杂数据映射 5.动态SQL resultMap 标签: 用来描述如何从数据库结果集中来加载对象 (敲黑板!!)主管数据库的字段和实体类属性的匹配,

  • Mybatis中foreach标签带来的空格\换行\回车问题及解决方案

    原因 在自已做的内容中通过获取多个商品Id,以此来获取多个商品详细信息.但数据库返回的商品信息的顺序与原来List中产品的id顺序并不匹配,这就导致了前端页面商品的信息显示混乱,不匹配. 通过网上找到order by排序可以有效解决这个问题,返回与查询时的产品id顺序一致.还有一点,List时有序的 这里先附带上这个sql语句(只能在数据库中成功) select prod_id, prod_name, price, `describe`, prod_date, prod_pic, integra

  • mybatis中bind标签和concat的使用说明

    首先,二种方式都可以用来模糊查询,都能预防 SQL 注入.但是在更换数据库情况下,bind标签通用. <if test=" userName != null and userName !=""> and userName like concat('%' ,#{userName},'%') </if> 使用concat函数连接字符串,在mysql中这个函数支持多个参数,但是在oracle中这个函数只支持2个参数,由于不同数据库之间的语法差异,更换数据库,

  • 基于mybatis中<include>标签的作用说明

    MyBatis中sql标签定义SQL片段,include标签引用,可以复用SQL片段 sql标签中id属性对应include标签中的refid属性.通过include标签将sql片段和原sql片段进行拼接成一个完整的sql语句进行执行. <sql id="sqlid"> res_type_id,res_type </sql> <select id="selectbyId" resultType="com.property.vo

随机推荐