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

您的位置:首頁技術文章
文章詳情頁

mybatis中xml之trim屬性說明

瀏覽:8日期:2023-10-18 16:20:25
mybatis的xml中trim標簽有四個屬性

1.prefix 前綴增加的內容

2.suffix 后綴增加的內容

3.prefixOverrides 前綴需要覆蓋的內容,一般是第一個判斷條件前面的多余的結構,如:第一個判斷條件前面多了 ‘and’

4.suffixOverrides 后綴需要覆蓋的內容,一般是最后一個數據的后面符號,如:set值的時候,最后一個值的后面多一個逗號‘,’

舉幾個例子:

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

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>

上面例子是很常規的一個寫法,第一個條件前面沒有任何符號,第二個條件要加上and,否則sql語句會報錯。很理想的狀態是第一個和第二個都有值,但是既然判斷,說明也可能會沒有值,當第一個name沒有值的時候,這個時候sql語句就會是

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

前綴加上where就不說,因為屬性 prefix=’where’,這個where 也可以寫在<trim>標簽的外面,這樣此處就無需用到屬性prefix了。

現在有更方便的標簽了,就是<where>,用這個標簽效果一樣的,會忽略掉第一個符合條件前面的符號。

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

如果第一個name值是null,則age前面的and會被忽略掉。

再說說另兩個屬性,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>

本例中最后一個條件中的逗號“,”會被后綴覆蓋掉,本例中的后綴是where id =‘1’;

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

trim標簽的使用場景

使用trim標簽去除多余的逗號

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

mybatis中xml之trim屬性說明

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

插入將會失敗。

做如下修改:

mybatis中xml之trim屬性說明

其中最重要的屬性是

suffixOverrides=','

表示去除sql語句結尾多余的逗號.

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Mybatis 數據庫
相關文章:
主站蜘蛛池模板: 石栏杆_青石栏杆_汉白玉栏杆_花岗岩栏杆 - 【石雕之乡】点石石雕石材厂 | 滚珠丝杆升降机_螺旋升降机_丝杠升降机-德迈传动 | 智能门锁电机_智能门锁离合器_智能门锁电机厂家-温州劲力智能科技有限公司 | 昆明网络公司|云南网络公司|昆明网站建设公司|昆明网页设计|云南网站制作|新媒体运营公司|APP开发|小程序研发|尽在昆明奥远科技有限公司 | PCB厂|线路板厂|深圳线路板厂|软硬结合板厂|电路板生产厂家|线路板|深圳电路板厂家|铝基板厂家|深联电路-专业生产PCB研发制造 | 精密五金冲压件_深圳五金冲压厂_钣金加工厂_五金模具加工-诚瑞丰科技股份有限公司 | 数控专用机床,专用机床,自动线,组合机床,动力头,自动化加工生产线,江苏海鑫机床有限公司 | 自动记录数据电子台秤,记忆储存重量电子桌称,设定时间记录电子秤-昆山巨天 | 立式硫化罐-劳保用品硫化罐-厂家直销-山东鑫泰鑫硫化罐厂家 | 12cr1mov无缝钢管切割-15crmog无缝钢管切割-40cr无缝钢管切割-42crmo无缝钢管切割-Q345B无缝钢管切割-45#无缝钢管切割 - 聊城宽达钢管有限公司 | 烟台螺纹,烟台H型钢,烟台钢材,烟台角钢-烟台市正丰金属材料有限公司 | 扬尘监测_扬尘监测系统_带证扬尘监测设备 - 郑州港迪科技有限公司 | 振动传感器,检波器-威海广达勘探仪器有限公司 | 回转炉,外热式回转窑,回转窑炉-淄博圣元窑炉工程有限公司 | 呼末二氧化碳|ETCO2模块采样管_气体干燥管_气体过滤器-湖南纳雄医疗器械有限公司 | 闭端端子|弹簧螺式接线头|防水接线头|插线式接线头|端子台|电源线扣+护线套|印刷电路板型端子台|金笔电子代理商-上海拓胜电气有限公司 | led全彩屏-室内|学校|展厅|p3|户外|会议室|圆柱|p2.5LED显示屏-LED显示屏价格-LED互动地砖屏_蕙宇屏科技 | 高效复合碳源-多核碳源生产厂家-污水处理反硝化菌种一长隆科技库巴鲁 | 鲁尔圆锥接头多功能测试仪-留置针测试仪-上海威夏环保科技有限公司 | 上海诺狮景观规划设计有限公司| 爱科技iMobile-专业的科技资讯信息分享网站 | 定硫仪,量热仪,工业分析仪,马弗炉,煤炭化验设备厂家,煤质化验仪器,焦炭化验设备鹤壁大德煤质工业分析仪,氟氯测定仪 | 塑木弯曲试验机_铜带拉伸强度试验机_拉压力测试台-倾技百科 | 煤矿支护网片_矿用勾花菱形网_缝管式_管缝式锚杆-邯郸市永年区志涛工矿配件有限公司 | 老城街小面官网_正宗重庆小面加盟技术培训_特色面馆加盟|牛肉拉面|招商加盟代理费用多少钱 | 全自动定氮仪-半自动凯氏定氮仪厂家-祎鸿仪器 | 广东健伦体育发展有限公司-体育工程配套及销售运动器材的体育用品服务商 | 明渠式紫外线杀菌器-紫外线消毒器厂家-定州市优威环保 | 爆破器材运输车|烟花爆竹运输车|1-9类危险品厢式运输车|湖北江南专用特种汽车有限公司 | 仿真茅草_人造茅草瓦价格_仿真茅草厂家_仿真茅草供应-深圳市科佰工贸有限公司 | 油冷式_微型_TDY电动滚筒_外装_外置式电动滚筒厂家-淄博秉泓机械有限公司 | 北京模型公司-军事模型-工业模型制作-北京百艺模型沙盘公司 | 对辊式破碎机-对辊制砂机-双辊-双齿辊破碎机-巩义市裕顺机械制造有限公司 | 南京欧陆电气股份有限公司-风力发电机官网 | 隧道风机_DWEX边墙风机_SDS射流风机-绍兴市上虞科瑞风机有限公司 | 酒瓶_酒杯_玻璃瓶生产厂家_徐州明政玻璃制品有限公司 | 众能联合-提供高空车_升降机_吊车_挖机等一站工程设备租赁 | 蓄电池回收,ups电池后备电源回收,铅酸蓄电池回收,机房电源回收-广州益夫铅酸电池回收公司 | 求是网 - 思想建党 理论强党| 衡阳耐适防护科技有限公司——威仕盾焊接防护用品官网/焊工手套/焊接防护服/皮革防护手套 | 工业胀紧套_万向节联轴器_链条-规格齐全-型号选购-非标订做-厂家批发价格-上海乙谛精密机械有限公司 |