电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

mybatis中xml之trim屬性說明

瀏覽:7日期:2023-10-18 16:20:25
mybatis的xml中trim標(biāo)簽有四個(gè)屬性

1.prefix 前綴增加的內(nèi)容

2.suffix 后綴增加的內(nèi)容

3.prefixOverrides 前綴需要覆蓋的內(nèi)容,一般是第一個(gè)判斷條件前面的多余的結(jié)構(gòu),如:第一個(gè)判斷條件前面多了 ‘a(chǎn)nd’

4.suffixOverrides 后綴需要覆蓋的內(nèi)容,一般是最后一個(gè)數(shù)據(jù)的后面符號(hào),如:set值的時(shí)候,最后一個(gè)值的后面多一個(gè)逗號(hào)‘,’

舉幾個(gè)例子:

1.根據(jù)用戶姓名和年齡查詢用戶,有什么值就根據(jù)什么條件(目的是說明幾個(gè)屬性用法,可能例子不適用于實(shí)際場(chǎng)景中)

select * from User where name=’zhangsan’ and age=’20’;<select id=’queryUser’>select * from User<trim prefix=’where’ prefixOverrides=’and’> <if test='name != null and name != ’’'>name = #{name} </if> <if test='age !=null and age !=’’'>and age = #{age} </if></trim><select>

上面例子是很常規(guī)的一個(gè)寫法,第一個(gè)條件前面沒有任何符號(hào),第二個(gè)條件要加上and,否則sql語句會(huì)報(bào)錯(cuò)。很理想的狀態(tài)是第一個(gè)和第二個(gè)都有值,但是既然判斷,說明也可能會(huì)沒有值,當(dāng)?shù)谝粋€(gè)name沒有值的時(shí)候,這個(gè)時(shí)候sql語句就會(huì)是

select * from User where and age=’’,很明顯這個(gè)sql語句語法存在問題。在這里標(biāo)簽屬性prefixOverrides就起作用了,它會(huì)讓前綴where覆蓋掉第一個(gè)and。覆蓋之后的是:select * from User where age=’’;

前綴加上where就不說,因?yàn)閷傩?prefix=’where’,這個(gè)where 也可以寫在<trim>標(biāo)簽的外面,這樣此處就無需用到屬性prefix了。

現(xiàn)在有更方便的標(biāo)簽了,就是<where>,用這個(gè)標(biāo)簽效果一樣的,會(huì)忽略掉第一個(gè)符合條件前面的符號(hào)。

select * from User <where> <if test='name != null and name != ’’'>name = #{name} </if> <if test='age !=null and age !=’’'>and age = #{age} </if></where>

如果第一個(gè)name值是null,則age前面的and會(huì)被忽略掉。

再說說另兩個(gè)屬性,suffix和suffixOverrides。

如:更新用戶的信息,哪些字段有值就更新哪些字段,sql語句如下:

<update id='updateUser'> update User <trim prefix='set' suffixOverrides=',' suffix='where id=’1’'><if test='name != null and name != ’’'> name=#{name},</if><if test='age != null and age !=’’'> age=#{age},</if> </trim></update>

本例中最后一個(gè)條件中的逗號(hào)“,”會(huì)被后綴覆蓋掉,本例中的后綴是where id =‘1’;

OK,純屬為了說明四個(gè)屬性怎么使用的,具體里面的值會(huì)根據(jù)具體需求而定。希望舉一反三~

trim標(biāo)簽的使用場(chǎng)景

使用trim標(biāo)簽去除多余的逗號(hào)

如果紅框里面的條件沒有匹配上,sql語句會(huì)變成如下:

mybatis中xml之trim屬性說明

INSERT INTO role(role_name,) VALUES(roleName,)

插入將會(huì)失敗。

做如下修改:

mybatis中xml之trim屬性說明

其中最重要的屬性是

suffixOverrides=','

表示去除sql語句結(jié)尾多余的逗號(hào).

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Mybatis 數(shù)據(jù)庫
相關(guān)文章:
主站蜘蛛池模板: 楼承板-钢筋楼承板-闭口楼承板-无锡优贝斯楼承板厂 | 实验室装修_实验室设计_实验室规划设计- 上海广建净化工程公司 | 橡胶粉碎机_橡胶磨粉机_轮胎粉碎机_轮胎磨粉机-河南鼎聚重工机械制造有限公司 | 河南砖机首页-全自动液压免烧砖机,小型砌块水泥砖机厂家[十年老厂] | 电磁铁_小型推拉电磁铁_电磁阀厂家-深圳市宗泰电机有限公司 | 安平县鑫川金属丝网制品有限公司,防风抑尘网,单峰防风抑尘,不锈钢防风抑尘网,铝板防风抑尘网,镀铝锌防风抑尘网 | 可程式恒温恒湿试验箱|恒温恒湿箱|恒温恒湿试验箱|恒温恒湿老化试验箱|高低温试验箱价格报价-广东德瑞检测设备有限公司 | 团建-拓展-拓展培训-拓展训练-户外拓展训练基地[无锡劲途] | 等离子空气净化器_医用空气消毒机_空气净化消毒机_中央家用新风系统厂家_利安达官网 | 扒渣机,铁水扒渣机,钢水扒渣机,铁水捞渣机,钢水捞渣机-烟台盛利达工程技术有限公司 | 深圳APP开发公司_软件APP定制开发/外包制作-红匣子科技 | 气力输送_输送机械_自动化配料系统_负压吸送_制造主力军江苏高达智能装备有限公司! | 睿婕轻钢别墅_钢结构别墅_厂家设计施工报价 | 匀胶机旋涂仪-声扫显微镜-工业水浸超声-安赛斯(北京)科技有限公司 | 室内室外厚型|超薄型|非膨胀型钢结构防火涂料_隧道专用防火涂料厂家|电话|价格|批发|施工 | 一体化隔油提升设备-餐饮油水分离器-餐厨垃圾处理设备-隔油池-盐城金球环保产业发展有限公司 | 防水套管厂家-柔性防水套管-不锈钢|刚性防水套管-天翔管道 | 厂厂乐-汇聚海量采购信息的B2B微营销平台-厂厂乐官网 | 天津力值检测-天津管道检测-天津天诚工程检测技术有限公司 | 我爱古诗词_古诗词名句赏析学习平台 | 壹作文_中小学生优秀满分作文大全 | 识禅_对禅的了解,从这里开始 | 玻璃钢型材-玻璃钢风管-玻璃钢管道,生产厂家-[江苏欧升玻璃钢制造有限公司] | 杭州标识标牌|文化墙|展厅|导视|户内外广告|发光字|灯箱|铭阳制作公司 - 杭州标识标牌|文化墙|展厅|导视|户内外广告|发光字|灯箱|铭阳制作公司 | 涿州网站建设_网站设计_网站制作_做网站_固安良言多米网络公司 | 动库网动库商城-体育用品专卖店:羽毛球,乒乓球拍,网球,户外装备,运动鞋,运动包,运动服饰专卖店-正品运动品网上商城动库商城网 - 动库商城 | 常州律师事务所_常州律所_常州律师-江苏乐天律师事务所 | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 丽陂特官网_手机信号屏蔽器_Wifi信号干扰器厂家_学校考场工厂会议室屏蔽仪 | 户外-组合-幼儿园-不锈钢-儿童-滑滑梯-床-玩具-淘气堡-厂家-价格 | 打造全球沸石生态圈 - 国投盛世 锂电混合机-新能源混合机-正极材料混料机-高镍,三元材料混料机-负极,包覆混合机-贝尔专业混合混料搅拌机械系统设备厂家 | 海尔生物医疗四川代理商,海尔低温冰箱四川销售-成都壹科医疗器械有限公司 | 数码管_LED贴片灯_LED数码管厂家-无锡市冠卓电子科技有限公司 | 玉米深加工设备-玉米深加工机械-新型玉米工机械生产厂家-河南粮院机械制造有限公司 | LZ-373测厚仪-华瑞VOC气体检测仪-个人有毒气体检测仪-厂家-深圳市深博瑞仪器仪表有限公司 | 耐破强度测试仪-纸箱破裂强度试验机-济南三泉中石单品站 | 便携式高压氧舱-微压氧舱-核生化洗消系统-公众洗消站-洗消帐篷-北京利盟救援 | 天津仓储物流-天津电商云仓-天津云仓一件代发-博程云仓官网 | 面粉仓_储酒罐_不锈钢储酒罐厂家-泰安鑫佳机械制造有限公司 | 自动售货机_无人售货机_专业的自动售货机运营商_免费投放售货机-广州富宏主官网 | 天津试验仪器-电液伺服万能材料试验机,恒温恒湿标准养护箱,水泥恒应力压力试验机-天津鑫高伟业科技有限公司 |