當前位置:
首頁 > 知識 > 框架學習系列 mybatis 第十五篇動態sql及常用標籤二

框架學習系列 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 第十一篇 映射文件之輸入映射

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 凱哥java 的精彩文章:

框架學習系列 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 框架簡介