框架學習系列 mybatis 第十五篇動態sql及常用標籤二
本節主要內容
1:動態sql使用(trim標籤、sql片段的使用)
2:總結&下節預告
本文是《凱哥陪你學系列-框架學習之mybatis框架學習》中框架學習系列 mybatis 第十五篇 mybatis動態sql及常用標籤二
回顧:
在上一篇《框架學習系列 mybatis 第十四篇 mybatis動態sql及常用標籤二》中我們知道什麼是動態sql,也學會了常用的標籤:where、if、set標籤的使用。那麼在本篇中,我們將繼續學習剩下的標籤
一:動態sql使用(trim標籤、sql片段的使用)
1.1:trim標籤
trim標籤幹嘛用?
trim標籤是一個格式的標記(說的啥啊?不懂),
換句話來說:主要就是在自己包含的前面可以加些某些前綴,或者是在自己的後面加上某些後綴(依然一臉蒙比中~)
簡單理解:trim標籤有點類似於string類型中的replace的效果(或者可以理解為這貨可以實現where和set同樣的效果)
trim的屬性有:
prefix:前綴覆蓋並增加對應內容
suffix:後綴覆蓋並追加其內容
prefixOverrides:前綴判斷的條件
suffixOverrides:後綴判斷的條件
1.2:使用案例
需求:同樣查詢條件有用戶名、性別,查詢對應的用戶集合。
各位看官,咱先上大圖
在Mapper-User.xml中:
說明:
:聲明開始使用trim標籤
:trim標籤結束
prefix:前綴。也就是在之前添加追加什麼
prefixOverides:前綴添加的判斷條件。
concat:這個是mysql的連接函數,可以理解為加號在java中字元串連接的作用
上面sql語句其實就等同於上節課(《框架學習系列 mybatis 第十四篇 mybatis動態sql及常用標籤一》)
中講解的where if 標籤的使用。
where if標籤使用如下:
trim if 相當於where if 標籤使用測試類:
執行的結果:
1.3:trim if相當於 set if 的使用(各位看官,自己可以練習練習)
1.4:sql片段的使用
1.4.1:sql片段是什麼?使用sql片段有什麼好處?
sql片段,就是預先定義後的一些sql語句。等其他sql需要的時候直接拿來用。
sql片段可以提高代碼的可重用性
1.4.2:sql片段的使用
1.4.2.1:定義sql片段
在上面查詢語句中我們可以將if 標籤的sql語句提取出來。
在Mapper-User.xml中:
先定義sql片段
說明:
sql:聲明sql片段開始
id:該sql片段唯一標識符。在當前的xml中是唯一的。
註:因為sql片段是公共的,所以最好不要將關鍵字帶入。
比如:最好不要講where、select等關鍵字聲明在內
使用sql片段:
說明:
include:指明開始引用外部的
refid:注入需要引用的id.這個id必須是已經存在(已經聲明的)
測試類:
運行結果:
同樣是查詢到兩條數據。說明執行沒問題。
二:總結
通過本文學習,我們必須掌握的
1:sql片段的使用。這個在以後公司開發中也常用
了解的:
1:trime if 標籤可以替換 where if或者是set if 不過一般很少使用
下節預告:
在下節課中,我們將學習到另外很有用的標籤:foreach標籤。這個標籤可以處理list循環。同時我們還會講解mybaits和hibernate的區別。歡迎大家學習下一篇《框架學習系列 mybatis 第十六篇 mybatis 常用標籤三及與hibernate的比較》
框架學習系列 mybatis 第十四篇 動態sql一
框架學習系列 mybatis 第十三篇 全局配置文件 二
框架學習系列 mybatis 第十二篇映射文件之輸出映射
框架學習系列 mybatis 第十一篇 映射文件之輸入映射


※框架學習系列 mybatis 第十四篇 動態sql一
※框架學習系列 mybatis 第十三篇 全局配置文件 二
※框架學習系列 mybatis 第十二篇映射文件之輸出映射
※框架學習系列 mybatis 第十一篇 映射文件之輸入映射
※框架學習系列 mybatis 第十篇 全局配置文件 一
TAG:凱哥java |
※mybatis框架的動態sql語句
※Karpathy更新深度學習開源框架排名:TensorFlow第一,PyTorch第二
※ArXiv最火深度學習框架:TensorFlow第一,PyTorch第二!
※分散式框架spring-session實現session一致性使用問題
※學界 | Wasserstein is all you need:構建無監督表示的統一框架
※《Tensorflow:實戰Google深度學習框架》
※Keras vs PyTorch:誰是「第一」深度學習框架?
※第55期:Python機器學習實踐指南、Tensorflow 實戰Google深度學習框架
※JFinal框架學習——cache的簡單使用
※Wasserstein is all you need:構建無監督表示的統一框架
※python 框架flask學習心得
※淺談Metasploit框架中的Payload
※ArXiv最受歡迎開源深度學習框架榜單:TensorFlow第一,PyTorch第四
※ArXiv最受歡迎開源深度學習框架榜:TensorFlow第一,PyTorch第四
※通向架構師的道路 ( 第二十二天 ) 萬能框架 spring ( 四 ) 使用 struts2
※機器學習框架王座之爭:PyTorch直逼Tensorflow
※Keras還是TensorFlow?深度學習框架選型實操分享
※筆記應用GoodNotes將推出macOS版本,基於Project Catalyst框架
※Altova跨平台移動應用框架MobileTogether發新版
※Python Web 應用程序 Tornado 框架簡介