Mybatis之动态sql

Mybatis之动态sql

一 概述

  1. 动态 SQL是MyBatis强大特性之一。极大的简化我们拼装 SQL的操作。
  2. 动态 SQL 元素和使用 JSTL 或其他类似基于 XML 的文本处 理器相似。
  3. MyBatis 采用功能强大的基于 OGNL 的表达式来简化操作。
    – if :条件判断
    – choose (when, otherwise) 多情况条件判断
    – trim (where, set) :用于条件查询和更新
    – foreach:遍历

二 标签的使用

  1. if的使用:条件判断在这里插入图片描述
  2. choose (when, otherwise):多情况判断在这里插入图片描述
  3. trim (where, set)
    (1)where :用于条件查询在这里插入图片描述
    (2)set:用于更新在这里插入图片描述
    (3)trim:去空格 在这里插入图片描述
  4. foreach遍历
    (1)动态 SQL 的另外一个常用的必要操作是需要对一个集合 进行遍历,通常是在构建 IN 条件语句的时候 在这里插入图片描述
    (2)当迭代列表、集合等可迭代对象或者数组时
    index是当前迭代的次数
    item的值是本次迭代获取的元素

    (3)当使用字典(或者Map.Entry对象的集合)时
    index是键,item是值
  5. bind绑定变量
    bind 元素可以从 OGNL 表达式中创建一个变量并将其绑定到上下文。比如: 在这里插入图片描述
  6. Multi-db vendor support
    若在 mybatis 配置文件中配置了databaseIdProvider , 则可 以使用“_databaseId”变量,这样就可以根据不同的数据库 厂商构建特定的语句
    在这里插入图片描述

三 OGNL的介绍

OGNL( Object Graph Navigation Language )对象图导航语言,这是一种强大的表达式语言,通过它可以非常方便的来操作对象属性。 类似于我们的EL,SpEL等。
  1. 使用OGNL
    (1)访问对象属性:person.name
    (2)调用方法:person.getName
    (3)调用静态方法/方法:@java.lang.Math@PI 、@java.util.UUID@randomUUID()
    (4)调用构造方法: new com.atguigu.bean.Person(‘admin’).name
    (5)运算符: +,-*,/,%
    (6)逻辑运算符: in,not in,>,>=,<,<=,==,!= ,注意在xml中特殊字符如“<,>”等这些都需要使用转义字符,如使用“<,>”
  2. 访问集合伪属性在这里插入图片描述
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值