MyBatis-(笔记)基础-03

    动态SQL
动态SQL基于OGNL的表达式,便于在SQL语句中实现某些逻辑。
    动态SQL元素
if:利用if实现简单的条件选择
choose(when,otherwise):相当于Java中的switch语句,
通常与when和otherwise搭配
where:简化SQL语句中where的条件判断
set:解决动态更新语句
trim:可以灵活的去除多余的关键字
foreach:迭代一个集合,通常用于in条件
    if

    where

where元素标签会自动识别其标签内是否有返回值,有就插入一个where,
若标签返回的内容是以and或者or开头,会自动剔除。
    if+trim(实现多条件查询)
trim元素会自动识别其标签内是否有返回值

prefix:前缀,作用是通过自动识别是否有返回值后,在trim包含的内容上加上前缀
suffix:后缀,作用是在trim包含的内容上加上后缀。
prefixOverrides:对于trim包含内容的首部进行指定内容的忽略
suffixOverrides:对于trim包含内容的首尾部进行指定内容的忽略。
    if+set

    if+trim改set

    入参为数组类型的foreach迭代

item:表示集合中每一个元素进行迭代时的别名(如此处的"rolelds”)。
index:指定一个名称,用于表示在迭代过程中,每次迭代到的位置。
open:表示该语句以什么开始(既然是in条件语句,所以必然是以'('开始)。
separator:表示在每次进行迭代之间以什么符号作为分隔符
(既然是in条件语句,所以必然是以','作为分隔符)。
close:表示该语句以什么结束(既然是in条件语句,所以必然是以')'结束}。
collection:最关键并最容易出错的属性,需格外注意,该属性必须指定,
不同情况下.该属性的值是不一样的。主要有三种情况:
若入参为单参数且参数类型是一个List的时候,collection属性值为list。
若入参为单参数且参数类型是一个数组的时候,collection属性值为array
(此处传入参数lnteger[]rolelds为数组类型,故此处collection属性值设为"array")。
若传入参数为多参数,就需要把它们封装为一个Map进行处理。
    入参为List类型的foreach迭代

    入参为Map类型的foreach迭代

    choose(when,otherwise)
when元素:当其test属性中条件满足的时候,就会输出when元素中的内容。

otherwise元素:当when中的所有条件都不满足的时候,会自动输出otherwise元素内容。


    MyBathis分页
MyBathis的分页功能基于内存的分页。
LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。
LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,
第一个参数(起始位置)指定第一个返回记录行的偏移量,
第二个参数(页面容量)指定返回记录行的最大数目。
select * from User LIMIT 5,5

猜你喜欢

转载自blog.csdn.net/qq_41909010/article/details/80734662