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

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

MyBatis學(xué)習(xí)筆記(六)動(dòng)態(tài)sql

2019-11-10 17:08:18
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

轉(zhuǎn)載自:MyBatis之動(dòng)態(tài)sql


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

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

上述語(yǔ)句在表中查詢滿足username條件的記錄,這樣寫(xiě)查詢語(yǔ)句有一個(gè)弊端,就是該語(yǔ)句只能通過(guò)username查詢數(shù)據(jù)庫(kù)。當(dāng)我們?cè)诙鄺l件中查詢時(shí),如果不需要username條件而是需要其它多個(gè)查詢條件時(shí),那UserMapper.xml文件中的這個(gè)查詢條件就沒(méi)用了。

需求:將自定義查詢條件查詢用戶列表和查詢用戶列表總記錄數(shù)改為動(dòng)態(tài)sql。需要使用if標(biāo)簽和where標(biāo)簽。

1.if和where

使用if標(biāo)簽和where標(biāo)簽在UserMapper.xml中添加如下內(nèi)容: 修改自定義查詢條件查詢用戶列表代碼: 這里寫(xiě)圖片描述 修改自定義查詢條件查詢用戶列表總記錄數(shù)代碼: 這里寫(xiě)圖片描述 發(fā)現(xiàn)< where>和< if>在上述兩個(gè)查詢語(yǔ)句中重復(fù)的代碼出現(xiàn)了兩次,那這里我們是否可以把相同的sql片段拿出來(lái)單獨(dú)寫(xiě)在一個(gè)sql片段中然后再在不同的查詢語(yǔ)句中應(yīng)用呢?答案是肯定的,看下面的sql片段。


2.sql片段

通過(guò)sql片段可以將通用的sql語(yǔ)句抽取出來(lái),單獨(dú)定義,在其它的statement中可以引用sql片段。其中通用的sql語(yǔ)句,一般用在:where條件、查詢列。

2.1定義sql片段

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

2.2使用sql片段

使用< include>標(biāo)簽對(duì)上面定義的sql片段加以引用: 這里寫(xiě)圖片描述這里寫(xiě)圖片描述 測(cè)試類(lèi)代碼不變,這樣我們便完成了對(duì)sql片段的引用。

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


3.foreach標(biāo)簽

在statement通過(guò)foreach遍歷parameterType中的集合類(lèi)型。首先我們需要在UserQueryVo中定義Listids屬性: 這里寫(xiě)圖片描述 并添加相應(yīng)的get和set方法。

然后我們?cè)赨serMapper.xml中使用foreach修改where語(yǔ)句,使用foreache遍歷list: 這里寫(xiě)圖片描述 各屬性說(shuō)明見(jiàn)代碼注釋?zhuān)缓笫菧y(cè)試代碼: 這里寫(xiě)圖片描述 通過(guò)這5篇文章,我們便完成了MyBatis學(xué)習(xí)的基礎(chǔ)知識(shí)。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 泽普县| 安义县| 邵阳县| 镇安县| 辽阳市| 阿坝县| 原阳县| 武乡县| 宁海县| 新邵县| 永嘉县| 长治市| 金乡县| 乌拉特后旗| 湟中县| 沙雅县| 平舆县| 瓦房店市| 东至县| 华阴市| 齐齐哈尔市| 大田县| 阿勒泰市| 二连浩特市| 综艺| 建阳市| 新宁县| 西安市| 科技| 阜平县| 康乐县| 普格县| 仪征市| 和林格尔县| 海阳市| 安龙县| 奇台县| 克东县| 锡林浩特市| 阳泉市| 班戈县|