国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

MyBatis學習筆記(六)動態sql

2019-11-09 19:10:03
字體:
來源:轉載
供稿:網友

轉載自:MyBatis之動態sql


我們需要知道的是,使用mybatis重點是對sql的靈活解析和處理。在原先的UserMappser.xml中,我們這樣查詢表中滿足條件的記錄 :

<select id="findUserList" parameterType="userQueryVo" resultType="user"> select id,username,birthday from user where username like '${value}'</select>

上述語句在表中查詢滿足username條件的記錄,這樣寫查詢語句有一個弊端,就是該語句只能通過username查詢數據庫。當我們在多條件中查詢時,如果不需要username條件而是需要其它多個查詢條件時,那UserMapper.xml文件中的這個查詢條件就沒用了。

需求:將自定義查詢條件查詢用戶列表和查詢用戶列表總記錄數改為動態sql。需要使用if標簽和where標簽。

1.if和where

使用if標簽和where標簽在UserMapper.xml中添加如下內容: 修改自定義查詢條件查詢用戶列表代碼: 這里寫圖片描述 修改自定義查詢條件查詢用戶列表總記錄數代碼: 這里寫圖片描述 發現< where>和< if>在上述兩個查詢語句中重復的代碼出現了兩次,那這里我們是否可以把相同的sql片段拿出來單獨寫在一個sql片段中然后再在不同的查詢語句中應用呢?答案是肯定的,看下面的sql片段。


2.sql片段

通過sql片段可以將通用的sql語句抽取出來,單獨定義,在其它的statement中可以引用sql片段。其中通用的sql語句,一般用在:where條件、查詢列。

2.1定義sql片段

在UserMapper.xml中添加< sql>標簽代表sql片段: 這里寫圖片描述 這樣就完成了sql片段的定義,然后才能使用sql片段。

2.2使用sql片段

使用< include>標簽對上面定義的sql片段加以引用: 這里寫圖片描述這里寫圖片描述 測試類代碼不變,這樣我們便完成了對sql片段的引用。

有時候我們希望查詢語句是這樣select id,username,birthday from user where username like ‘%codingXiaxw%’ and id in (1,2),那我們又應該在sql片段中如何添加代碼呢?這時候需要用到< foreach>標簽。


3.foreach標簽

在statement通過foreach遍歷parameterType中的集合類型。首先我們需要在UserQueryVo中定義Listids屬性: 這里寫圖片描述 并添加相應的get和set方法。

然后我們在UserMapper.xml中使用foreach修改where語句,使用foreache遍歷list: 這里寫圖片描述 各屬性說明見代碼注釋,然后是測試代碼: 這里寫圖片描述 通過這5篇文章,我們便完成了MyBatis學習的基礎知識。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临猗县| 灵台县| 革吉县| 苍梧县| 张家界市| 安乡县| 赤壁市| 凯里市| 鄯善县| 青田县| 磐安县| 阿拉善右旗| 育儿| 梁河县| 宜昌市| 盘山县| 安西县| 平邑县| 大城县| 会宁县| 潞城市| 长顺县| 民勤县| 共和县| 开化县| 阿坝县| 佛山市| 涟源市| 红安县| 田阳县| 乡城县| 富源县| 桐梓县| 平凉市| 邵武市| 武威市| 刚察县| 交城县| 原阳县| 滕州市| 商丘市|