成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > Mybatis中的動態(tài)SQL語句解析

Mybatis中的動態(tài)SQL語句解析

熱門標(biāo)簽:常州網(wǎng)絡(luò)外呼系統(tǒng)開發(fā) 巫師三血與酒地圖標(biāo)注 走過哪個省地圖標(biāo)注 外呼系統(tǒng)電銷受騙 萊西市地圖標(biāo)注 400電話申請信用卡 在哪里申請400電話 銷售語音電話機(jī)器人 安徽ai電話電銷機(jī)器人有效果嗎

這篇文章主要介紹了Mybatis中的動態(tài)SQL語句解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

  Mybatis中配置SQL有兩種方式,一種是利用xml 方式進(jìn)行配置,一種是利用注解進(jìn)行配置。

  Mybatis使用注解配置SQL,但是由于配置功能受限,而且對于復(fù)雜的SQL而言可讀性很差,所以很少使用。

  Mybatis常用xml配置的方式,使用xml的幾個簡單的元素,便能完成動態(tài)SQL的功能,大量的判斷都可以在mybaties的映射xml里面配置,以達(dá)到許多需要大量代碼才能實(shí)現(xiàn)的功能,大大減少了代碼量,體現(xiàn)了Mybatis的靈活、高度可配置性和維護(hù)性。

                  元素                          作用                 備注
if 判斷語句 單條件分支判斷
choose(when,otherwise) 相當(dāng)于Java中的switch和case語句 多條件分支判斷
trim 輔助元素,用于處理特定的SQL拼裝問題 用于處理SQL拼裝的問題
foreach 循環(huán)語句 在in語句等列表?xiàng)l件常用

if元素

  if元素是最常用的判斷語句,相當(dāng)于Java中國的 if 語句,它常常與test屬性聯(lián)合使用。

select id="findRole1" parameterType="string" resultMap="roleResultMap">
    select role_no, role_name, note from t_role where 1=1
    if test="roleName != null and roleName !=''">
      and role_name like concat('%', #{roleName}, '%')
    /if>
  /select>

  當(dāng)參數(shù)roleName傳遞進(jìn)映射器時,如果參數(shù)不為空,則采取構(gòu)造對 roleName 的模糊查詢,否則就不要去構(gòu)造這個條件。通過Mybaties的 if 元素節(jié)省了許多拼接SQL的工作,集中在 xml 里面維護(hù)。

choose、when、otherwise元素

  如果在判斷時有更多的選擇,不只是兩種選擇,也就是類似switch...case...default...功能的語句。在映射的SQL語句中,使用choose、when、otherwise元素承擔(dān)這個功能。

select id="findRole2" parameterType="role" resultMap="roleResultMap">
    select role_no, role_name, note from t_role
    where 1=1
    choose>
      when test="roleNo != null and roleNo !=''">
        AND role_no = #{roleNo}
      /when>
      when test="roleName != null and roleName !=''">
        AND role_name like concat('%', #{roleName}, '%')
      /when>
      otherwise>
        AND note is not null
      /otherwise>
    /choose>
  /select>

  上述的場景就是:

  首先,如果角色編號不為空,則只用角色編號作為條件查詢。

  當(dāng)角色編號為空,而角色名稱不為空,則使用角色名稱作為條件進(jìn)行模糊查詢。

  當(dāng)角色編號和角色編號都為空,則要求角色備注不為空。

trim、where、set元素

  在前面的SQL語句中加入了“1=1”,這樣可以實(shí)現(xiàn)其功能,但是有一個更好的實(shí)現(xiàn),那就是使用where。當(dāng)where元素里面的條件成立時,才會加入where這個SQL關(guān)鍵字到組裝的SQL里面,否則不會加入。

select id="findRole3" parameterType="role" resultMap="roleResultMap">
    select role_no, role_name, note from t_role
    where>
      if test="roleName != null and roleName !=''">
        and role_name like concat('%', #{roleName}, '%')
      /if>
      if test="note != null and note !=''">
        and note like concat('%', #{note}, '%')
      /if>
    /where>
  /select>

  有時需要去掉一些特殊的SQL語法,比如常見的and、or等。使用trim元素也可以達(dá)到預(yù)期效果。其中prefix代表的語句的前綴,prefixOverrides代表的是需要去掉哪種字符串。與前面的where語句是等效的。

select id="findRole4" parameterType="string" resultMap="roleResultMap">
    select role_no, role_name, note from t_role
    trim prefix="where" prefixOverrides="and">
      if test="roleName != null and roleName !=''">
        and role_name like concat('%', #{roleName}, '%')
      /if>
    /trim>
  /select>

  在hibernate中如果因?yàn)楦履骋粋€字段而不得已發(fā)送所有的字段給持久化對象,這樣影響了SQL語句的執(zhí)行效率。最佳的方法是把主鍵和更新字段的值傳遞給SQL去更新。set元素就可以實(shí)現(xiàn)此功能。set元素遇到逗號,它會自動將對應(yīng)的逗號去掉。

update id="updateRole" parameterType="role">
    update t_role
    set>
      if test="roleName != null and roleName !=''">
        role_name = #{roleName},
      /if>
      if test="note != null and note != ''">
        note = #{note}
      /if>
    /set>
    where role_no = #{roleNo}
  /update>

foreach元素

  foreach元素是一個循環(huán)語句,它的作用是遍歷集合,它能很好的支持?jǐn)?shù)組和List、Set接口的集合,對此提供遍歷的功能,它往往用于SQL中的in關(guān)鍵字。

select id="findRoleByNums" resultMap="roleResultMap">
    select role_no, role_name, note from t_role where role_no in
    foreach item="roleNo" index="index" collection="roleNoList"
      open="(" separator="," close=")">
      #{roleNo}
    /foreach>
  /select>

  collection配置的roleNoList是傳遞進(jìn)來的參數(shù)名稱,它可以是一個數(shù)組、List、Set等集合。

  item配置的是循環(huán)中當(dāng)前的元素。

  index配置的是當(dāng)前元素在集合的位置下標(biāo)。

  open和close配置的是以什么符號將這些集合元素包裝起來。

  separator是各個元素的分隔符。

用test的屬性判斷字符串

  test用于條件判斷語句,其作用相當(dāng)于判斷真假,在大多數(shù)場景下,主要用于判斷空和非空的。

  select id="getRoleTest" parameterType="string" resultMap="roleResultMap">
    select role_no, role_name, note from t_role
    if test="type == 'Y'.toString()">
      where 1=1
    /if>
  /select>

  如果把 type='Y'傳遞給SQL,就可以實(shí)現(xiàn)Mybatis加入了條件 where 1=1,所以對于字符串的判斷,可以加入 toString ()的方法進(jìn)行比較。

bind元素

  bind元素的作用是通過OGNL表達(dá)式去定義一個上下文變量,這樣更方便使用。

  例如在模糊查詢時,如果是MySQL數(shù)據(jù)庫,常常用到一個concat,它用 % 和 參數(shù)相連。然而在Oracle數(shù)據(jù)庫中則沒有,Oracle數(shù)據(jù)庫用連接符號是 “||”,這樣SQL就需要兩種形式去實(shí)現(xiàn),用bind元素,就不用使用數(shù)據(jù)庫語言。

  select id="findRole5" parameterType="string" resultMap="roleResultMap">
    bind name="pattern" value="'%' + _parameter + '%'" />
    SELECT role_no, role_name, note FROM t_role
    where role_name like #{pattern}
  /select>

  以上就是我在學(xué)習(xí)過程中對于Mybatis中的動態(tài)SQL語句的常見知識點(diǎn)總結(jié),希望大家可以一起學(xué)習(xí)進(jìn)步!

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • 在Mybatis @Select注解中實(shí)現(xiàn)拼寫動態(tài)sql
  • Mybatis 動態(tài)SQL的幾種實(shí)現(xiàn)方法
  • MyBatis動態(tài)Sql之if標(biāo)簽的用法詳解
  • mybatis動態(tài)sql之Map參數(shù)的講解
  • Mybatis模糊查詢和動態(tài)sql語句的用法
  • Mybatis下動態(tài)sql中##和$$的區(qū)別講解
  • MyBatis執(zhí)行動態(tài)SQL的方法
  • mybatis動態(tài)sql實(shí)現(xiàn)邏輯代碼詳解

標(biāo)簽:赤峰 煙臺 果洛 鞍山 黃石 來賓 陽江 河北

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Mybatis中的動態(tài)SQL語句解析》,本文關(guān)鍵詞  Mybatis,中的,動態(tài),SQL,語句,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Mybatis中的動態(tài)SQL語句解析》相關(guān)的同類信息!
  • 本頁收集關(guān)于Mybatis中的動態(tài)SQL語句解析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    久久久精品一品道一区| 清纯唯美激情亚洲| 国产精品18久久久久久首页狼| 色婷婷激情五月| 少妇高潮久久77777| 久久久国内精品| 日韩一级二级| 国产精品扒开腿做爽爽爽的视频| 久久精品在这里| 在线免费观看视频| 国产精品欧美激情在线观看| 国产在线不卡精品| 国产成人精品视频在线| 免费看的国产视频网站| 欧美电影网站| 欧美日韩在线观看首页| 做爰无遮挡三级| 99久久久精品免费观看国产| 一本色道无码道dvd在线观看| 国产寡妇色xxⅹ交肉视频| 制服丝袜影音先锋| 欧美一区二区成人6969| 色综合久久综合| 亚洲最新在线观看| 免费av不卡在线观看| 亚洲国产精品成人| 国产精品久久77777| 国产成人免费91av在线| 四虎海外影库www4hu| 国产高清美女一级毛片久久| 免费黄色网页在线观看| 可以看av的网站久久看| 99亚洲乱人伦aⅴ精品| 国产不卡视频在线观看| 亚洲美女黄色| 在线观看免费版| 久久久人成影片一区二区三区观看| 综合电影一区二区三区| 久久99国产综合精品女同| 人人爱人人干婷婷丁香亚洲| 成人福利电影精品一区二区在线观看| 男女视频免费看| 亚洲成年人影院| 久久影院朴妮唛| 91精品国产综合久久久久久久| 一区二区激情视频| 国产一区二区三区电影在线观看| 精品无码久久久久| 麻豆国产视频| 国产精品免费在线播放| 任我爽在线视频| 女人床在线观看| 91高清免费视频| 欧美一级成年大片在线观看| 国产精品中出一区二区三区| 99久久免费视频.com| 欧美日韩中文字幕一区| 欧美xxxxx性| 黄色片视频在线观看| 国产精品午夜影院| 国家队第一季免费高清在线观看| 1024精品视频| 久久电影网站中文字幕| 五月六月丁香婷婷| 操bbb操bbb| 久久亚洲欧美| 日本免费一区二区视频| 国产全是老熟女太爽了| 中文字幕在线观看一区二区| 伊人久久男人天堂| 4438全国亚洲精品在线观看视频| 国产精品一卡二| 欧美mv日韩mv| 亚洲va久久久噜噜噜无码久久| 狠狠狠色丁香婷婷综合久久五月| 黑色丝袜福利片av久久| gogo久久日韩裸体艺术| 不卡一二三区| 99久久精品国产网站| 日日干夜夜爽| 91精品91久久久中77777| 日韩av大片在线观看| 一区二区三区91| 青青国产91久久久久久| 精品国产亚洲一区二区在线观看| 亚洲成a人片在线观看中文| 国产欧美一区在线| 亚洲精品国产品国语在线| 成人一二三四区| www.成人网.com| 日本国产一区二区三区| 色哺乳xxxxhd奶水米仓惠香| 桃花视频大全不卡免费观看网站| 美女av网站| 伊人色在线视频| 欧美激情国产精品免费| 久久99国产精品久久久久久久久| 欧美精品中文字幕一区二区| 伊人影院综合网| 国产成人啪午夜精品网站男同| 成人亲热视频网站| 91九色在线看| 日韩网站中文字幕| 成人www视频在线观看| 国产精品99无码一区二区| 国产高清亚洲一区| 羞羞视频在线观看免费| 亚洲精品久久久久国产| 国产精品一区二区欧美黑人喷潮水| 国产三级视频在线看| 蓝色福利精品导航| 久久国产精品无码网站| 麻豆传媒视频在线| 亚洲欧美日韩国产成人精品影院| 91视频福利网| 欧洲免费在线视频| 狠狠爱一区二区三区| 亚洲精品一区二区三区香蕉| www.黄色网址.com| 亚洲午夜未删减在线观看| 色婷婷视频在线| 成r视频免费观看在线播放| 国产精品系列在线播放| 成人一级片网址| 国内精品久久久久久| 久久精品麻豆| 一二三四日本中文字幕| 欧美人妖在线观看| 欧美日韩亚洲国产成人| 国产精品中文字幕久久久| 搡女人真爽免费午夜网站| 东京久久高清| 高清在线观看日韩| 亚洲精品久久久一区二区三区| 国产欧美日韩一级| 精品亚洲夜色av98在线观看| 性做久久久久久久久久| 亚洲精品国产偷自在线观看| 国产欧美日韩亚洲精品| 亚洲人成电影在线观看天堂色| 天堂中文资源在线| 久热国产精品视频一区二区三区| 亚洲av无码专区在线播放中文| 久久久久网址| 国产精品日韩在线观看| 男女羞羞视频在线观看| 特级丰满少妇一级aaaa爱毛片| 又嫩又硬又黄又爽的视频| 中文字幕久久精品| 日韩三区四区| 亚洲承认在线| 日韩av中文在线| 日本免费观看视| 欧美性一区二区| 日本在线视频1区| 久久国产波多野结衣| аⅴ资源天堂资源库在线| 色综合久久久| 欧美一区二区三区在线| 精品国产一区二区亚洲人成毛片| 好吊妞视频这里有精品| 中文字幕一区二区三中文字幕| 精品卡一卡二卡三卡四在线| 国产高清在线| 日日干夜夜爽| jjzzjjzz欧美69巨大| 五月天电影免费在线观看一区| 在线看黄色网| 日韩高清一级片| 欧美激情视频一区二区三区不卡| 成人免费乱码大片a毛片软件| 一本大道久久a久久精品综合| 黄一区二区三区| 在线观看三级网站| 中文字幕一二三四区| 亚洲最大的免费视频网站| 国产成人综合亚洲网站| 深夜视频在线免费| 99精品在线直播| 日韩三级电影网址| 欧美不卡福利| 三年中国中文观看免费播放| 丝袜老师办公室里做好紧好爽| 男人操女人免费软件| 大尺度在线观看| 成人在线电影在线观看视频| 久久草视频在线| 久久av中文字幕片| 欧美亚洲愉拍一区二区| 91九色porny在线| 国产精品三级在线| 一本大道久久加勒比香蕉| 欧美午夜久久久| 日本伦理一区二区三区| 无码人妻精品一区二区三区66| 国产视频观看一区| 欧美精品一区在线播放| 国产在线二区| 亚洲第一天堂在线观看| 国产成人精品网站| 亚洲高清国产精品| 中文av资源| 日韩av在线看| 欧美大片免费久久精品三p| 中文成人无字幕乱码精品区| 国产精品国模大尺度私拍| 奇米777影视成人四色| 国外成人免费在线播放| 日韩欧国产精品一区综合无码| 精品视频中文字幕| 成人精品视频| 日韩一区二区三区四区区区| 猫咪成人在线观看| 国产黄色片免费| 91精品国产色综合久久不8| 成人av在线观| 成人av在线看| 国产欧美日韩精品高清二区综合区| 麻豆国产一区二区| 欧美videosex性欧美黑吊| 91碰在线视频| 国产精品三级视频| 中文字幕亚洲在| 精品久久国产精品| 999精品国产| 欧美乱人伦中文字幕在线| 国产毛片欧美毛片久久久| 麻豆精品久久| 韩日成人在线| 精品少妇3p| 九九热精彩视频| av电影中文字幕| 台湾成人免费视频| 91久久国产综合久久91| 亚洲精品成人| 午夜国产福利在线| 欧美一区二区三级| 亚洲最新视频在线播放| 国产网站麻豆精品视频| 亚洲一本二本| 99精品热视频只有精品10| 欧美一区二区在线免费观看| 视频一区视频二区视频三区高| 91精品啪在线观看国产81旧版| 9797在线看片亚洲精品| 成人在线看片| 丝袜a∨在线一区二区三区不卡| 免费国产在线精品一区二区三区| 亚洲v欧美v另类v综合v日韩v| 久久99深爱久久99精品| 精品国产免费久久| 色噜噜偷拍精品综合在线| 激情小说综合区| 国产免费福利网站| 亚洲女同另类| 欧美精品久久久久久久久| 久久99国产精品尤物| 亚洲电影第1页| 中文字幕在线观看免费| 国产l精品国产亚洲区久久| 亚洲天堂视频在线观看免费| 亚洲视频在线免费看| 欧美日韩国产成人在线观看| 国产精品网站视频| 男人天堂手机在线| 亚洲欧美视频| 污网站在线播放| 四虎4hutv紧急入口| 中文成人无字幕乱码精品区| 天天爽天天爽夜夜爽| 偷拍一区二区三区| 国产精品视屏| 99t1这里只有精品| 欧美xxxx在线观看| 女人十八岁毛片| 亚洲网站情趣视频| 亚洲狼人综合干| 熟妇人妻av无码一区二区三区| 福利在线免费| 日本ー区在线视频| 亚洲精品少妇30p| 国产精品无码天天爽视频| 成av人电影在线观看| 99热手机在线| 欧美视频免费| 国产成人无码一区二区在线播放| 日韩视频在线观看国产| 福利一区和二区| 久久这里只有精品视频网| 亚洲私人影院在线观看| 久久久精品成人| 国产精品极品美女在线观看免费| 国产精品免费视频观看| 最新天堂资源在线资源| 在线观看一区二区精品视频| 久久亚洲图片| 一区二区欧美激情| 日韩在线视频免费| 免费毛片大全| 这里只有精品久久| 午夜欧美福利视频| 国产情侣小视频| 久久久久无码国产精品| 国产黄片一区二区三区| 免费在线一区观看| 国产精品久久9| 在线精品视频一区二区| 亚洲一区二区三区四区中文| 亚洲熟女乱色一区二区三区久久久| 国产精品污网站| 操欧美老女人| 亚洲日本va中文字幕久久| 国产乱子伦精品无码码专区| 精品亚洲成人| 熟妇人妻无乱码中文字幕真矢织江| 欧美另类videos粗暴黑人| 日韩一区在线播放| 精品爽片免费看久久| 免费黄色网页| 在线黄色国产视频| 国产美女被下药99| 日韩五码电影| 久久国产婷婷国产香蕉| 国产av无码专区亚洲精品| 日本欧美一二三区| 草碰在线视频| 99视频+国产日韩欧美| 欧美日韩中文字幕在线观看|