MyBatis动态Sql标签的基本使用 您所在的位置:网站首页 大于小于号的使用 MyBatis动态Sql标签的基本使用

MyBatis动态Sql标签的基本使用

2024-07-01 23:49| 来源: 网络整理| 查看: 265

我们在使用Mybatis会经常用到一些动态SQL,Mybatis提供了一些标签供我们使用,本文简单介绍一些常用的标签; 在动态sql中如果出现了大于号(>),小于号(=), 小于等于号( select * from tbl_employee where 1=1 and id=#{id} and last_name like #{lastName} and email=#{email} and gender=#{gender} where标签

在上面使用标签的时候,我们需要加一个1=1子句,但是还存在一个问题是,如果数据库很大的时候,会严重影响查询效率; 使用标签在有查询条件的时候,可以自动添加上where子句,没有查询条件时,就不会添加where子句,需要注意的是,第一个if标签中的SQL片段可以不包含and,当然写上也不会报错,系统会将自动去除多余的and,但是其他if中的SQL语句的and,必须要求写上,否则SQL语句拼接会出错误。

select * from tbl_employee and id=#{id} and last_name like #{lastName} and email=#{email} and gender=#{gender} trim标签

我们在使用where标签时,and是写在sql条件片断的前面,如果sql片断后面多出的and或者or where标签不能解决 。 那么当and写在sql后面,我们可以使用标签: trim 自定义字符串截取的规则 prefix="":前缀:trim标签体中是整个字符串拼串 后的结果。 prefix给拼串后的整个字符串加一个前缀 prefixOverrides="": 前缀覆盖: 去掉整个字符串前面多余的字符 suffix="":后缀 suffix给拼串后的整个字符串加一个后缀 suffixOverrides="" 后缀覆盖:去掉整个字符串后面多余的字符

select * from tbl_employee id=#{id} and last_name like #{lastName} and email=#{email} and gender=#{gender} and choose标签

choose(when,otherwise):分支选择 相当于switch case:break;

对于标签,其会从第一个开始逐个向后进行条件判断,如果出现中test属性为true,则直接结束choose标签,不再向后进行判断查找,如果when标签中的test判断结果都是false,则最后会执行otherwise标签;

在下面的例子中:如果带了id就用id查,如果带了lastName就用lastName查,只会进入其中一个

select * from tbl_employee id=#{id} last_name like #{lastName} email=#{email} 1=1 foreach标签

标签用于实现对于数组与集合的遍历。 1.collection:指定要遍历的集合: list类型的参数会特殊处理封装到map中,map的key就叫list 2. item:将当前遍历出来的元素赋值给指定变量 3.#{变量名} 就能取出变量的值也就是当前遍历出来的元素 4.separator每个元素之间的分隔符 5.open:遍历所有结果拼接一个开始的字符 6.close:遍历所有结果拼接一个结束的字符

select * from tbl_employee where id in #{item_id} sql标签

抽取可重用的sql片段。方便后面引用 1、sql抽取:经常将要查询的列名,或者插入用的列名抽取出来方便引用 2、include来引用已经抽取的sql;

#{stu.id} select * from student


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有