栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Mybatis动态标签大全

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Mybatis动态标签大全

常用动态标签分类
元素作用场景
select、insert、update、delete定义sql语句类型增删改查
if、foreach、choose控制动态sql拼接条件查询
where、set、trim辅助元素格式化输出
select 标签

常用属性介绍:
id:唯一指定标签的名字
parameterType:给SQL语句传递参数的数据类型
parameterMap:给SQL语句传递参数的数据类型,需要和标签连用
resultType :查询结构返回的数据类型,自动进行封装操作
resultMap:查询结果返回的数据类型,会根据映射文件中来完成数据封装


    select id,age,name
    from user
    where id in
    
        #{item}
    

choose 标签

有时候我们并不想应用所有的条件,而只是想从多个选项中选择一个。
MyBatis 提供了 choose 元素,按顺序判断 when 中的条件出否成立,如果有一个成立,则 choose 结束。当 choose 中所有 when的条件都不满则时,则执行 otherwise 中的 sql。类似于 Java 的 switch 语句,choose 为 switch,when 为 case,otherwise 则为 default。
if 是与(and)的关系,而 choose 是或(or)的关系。


    SELECT * 
    from user
    WHERe
    
        and name LIKE CONCAT(CONCAT('%', #{name}),'%')
    

解决该情况除了将"WHERe"改为“WHERe 1=1”之外,还可以利用 where标签


set 标签

当在 update 语句中使用 if 标签时,如果最后的 if 没有执行,则或导致逗号多余错误。
使用 set 标签可以将动态的配置 set关键字,和剔除追加到条件末尾的任何不相关的逗号。


    update user set
    
        name = #{name},
    
    
        age = #{age}
    
    WHERe ID = #{id};

使用 set+if 标签修改后,如果age为null时,会剔除name追加到条件末尾的任何不相关的逗号


    update user 
    
	    
	        name = #{name},
	    
	    
	        age = #{age}
	    
    
    WHERe ID = #{id};

trim 标签

常用于insert、update语句中
trim属性主要有以下四个:
prefix:在trim标签内sql语句加上前缀
suffix:在trim标签内sql语句加上后缀
prefixOverrides:指定去除多余的前缀内容,如:prefixOverrides=“AND | OR”,去除trim标签内sql语句多余的前缀"and"或者"or"。
suffixOverrides:指定去除多余的后缀内容。


	update user set 
	
		
	        name = #{name},
	    
	    
	        age = #{age},
	    
	 
	where id=#{id}

如果name和age的值都不为空的话,会执行如下语句,会忽略最后一个“,”

update user set name='XX',age='XX'  where id='XX'
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/703982.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号