婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Mybatis4 之Mybatis動態sql的實現代碼

Mybatis4 之Mybatis動態sql的實現代碼

熱門標簽:優質地圖標注 京華物流公司地圖標注 奧威地圖標注多個地方 怎樣在地圖上標注路線圖標 武漢長沙外呼系統方法和技巧 千呼電銷機器人價格 百度地圖標注不同路線 智能語音外呼系統選哪家 外呼系統電銷專用

1.什么是動態SQL

傳統的使用JDBC的方法,相信大家在組合復雜的的SQL語句的時候,需要去拼接,稍不注意哪怕少了個空格,都會導致錯誤。Mybatis的動態SQL功能正是為了解決這種問題, 其通過 if, choose, when, otherwise, trim, where, set, foreach標簽,可組合成非常靈活的SQL語句,從而提高開發人員的效率。

SQL語句不固定, 會根據前臺用戶的操作而進行變化的SQL語句, 可以被稱之為動態SQL. 在MyBatis中, 提供了一組標簽, 用于方便的實現動態SQL, 不需要通過java代碼拼接字符串了.
###2.動態sql中的標簽

1. if>

用于條件判斷, test屬性表示判斷結果, 要求是一個boolean.

2.where>

用于維護where子句, 通常配合一起使用. 如下功能:
a)當沒有條件時, 不會創建WHERE關鍵字;
b)當有條件時, 會自動生成WHERE關鍵字;
c)會自動去掉第一個條件的and/or關鍵字.

3.choose>when>otherwise>

功能類似于switch…case…default, 表示多分支判斷, 只能成立一個條件

mapper namespace="com.bjsxt.mapper.UserMapper">
 select id="selByCondition" resultType="user">
 select * from tb_user
 where>
  if test="id != null">
  and id=#{id}
  /if>
  if test="username != null and username != ''">
  and username=#{username}
  /if>
  if test="age != null">
  and age lt;gt; #{age}
  /if>
  choose>
  when test="birthday != null and birthday != ''">
   and birthday = #{birthday}
  /when>
  otherwise>
   and birthday is null
  /otherwise>
  /choose>
 /where>
 /select>
/mapper>

4.bind>

對參數進行加工, 通常用于模糊查詢給參數加通配符

select id="sel2" resultType="user">
 include refid="base_sql" />
 where>
 if test="realname != null and realname != ''">
  bind name="realname" value="'%' + realname + '%'"/>
  and realname like #{realname}
 /if>
 /where>
/select>

5.include>

配合使用, 用于提取通用sql語句片段, 用于引用SQL片段

sql id="base_sql">
 select
 id, username, password, realname, age, birthday, reg_time regTime
 from tb_user
/sql>
select id="sel2" resultType="user">
 include refid="base_sql" />
 where>
 if test="realname != null and realname != ''">
  bind name="realname" value="'%' + realname + '%'"/>
  and realname like #{realname}
 /if>
 /where>
/select>

6.set>

用于維護update語句中的set子句, 特點是可以刪除多余的逗號

update id="upd">
 update
 tb_user
 set>
 if test="username != null and username != ''">
  username=#{username},
 /if>
 if test="age != null">
  age=#{age}
 /if>
 /set>
 where
 id=#{id}
/update>

7.foreach>

遍歷集合(數組, List, Set, Map), 通常用于in操作或批量新增. 屬性簡介:

a)collection: 要遍歷的集合

b)item: 迭代項

c)open: 以什么字符開頭

d)close: 以什么字符結束

e)separator: 多個迭代項之間的分隔符

delete id="delBatch">
 delete from tb_user
 where>
 id in
 foreach collection="ids" item="id" open="(" close=")" separator=",">
  #{id}
 /foreach>
 /where>
/delete>

8.trim>

在語句的前后進行追加和去除指定的字符.

insert id="insBatch">
 insert into tb_user values
 foreach collection="users" item="user" separator=",">
 trim prefix="(" prefixOverrides="," suffix=")" suffixOverrides=",">
  ,default, #{user.username}, #{user.password}, #{user.realname}, #{user.age}, #{user.birthday}, now(),
 /trim>
 /foreach>
/insert>

知識點補充:靜態sql與動態sql有什么區別

SQL 語句從編譯和運行的角度可以分為兩種,靜態 SQL和 動態 SQL,這兩種 SQL 在使用方式、運行機制和性能表現等方面各有特點 :

靜態 SQL:靜態 SQL 語句一般用于嵌入式 SQL 應用中,在程序運行前,SQL 語句必須是確定的,例如 SQL 語句中涉及的列名和表名必須是存在的。靜態 SQL 語句的編譯是在應用程序運行前進行的,編譯的結果會存儲在數據庫內部。而后程序運行時,數據庫將直接執行編譯好的 SQL 語句,降低運行時的開銷。

動態 SQL:動態 SQL 語句是在應用程序運行時被編譯和執行的,例如,使用 DB2 的交互式工具 CLP 訪問數據庫時,用戶輸入的 SQL 語句是不確定的,因此 SQL 語句只能被動態地編譯。動態 SQL 的應用較多,常見的 CLI 和 JDBC 應用程序都使用動態 SQL。

靜態sql:語句類型在編程時候必須是確定好的。比如

select * from employee where empno='abc'
select * from employee where empno='12'

都必須是確定的,唯一可以變化的是abc的值。

動態sql:語句類型可以在運行期間指定,比如clp就是最典型的動態sql程序,你可以輸入任何命令。

靜態sql的存取路徑是在運行前就確定好的,而動態sql的存取路徑是在運行時動態生成的。因此生成的存取計劃相對更優,但考慮到生成存取路徑的開銷,有可能應用程序的運行時間相對會比靜態sql長些。

總結

到此這篇關于Mybatis4 之Mybatis動態sql的實現代碼的文章就介紹到這了,更多相關mybatis動態sql內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • MyBatis的動態SQL語句實現
  • MyBatis實現動態SQL的實現方法
  • Mybatis中的動態SQL語句解析
  • MyBatis動態Sql之if標簽的用法詳解
  • mybatis動態sql之Map參數的講解
  • Mybatis模糊查詢和動態sql語句的用法
  • MyBatis動態SQL實現配置過程解析

標簽:益陽 天水 銅仁 防疫戰設 來賓 七臺河 威海 宿州

巨人網絡通訊聲明:本文標題《Mybatis4 之Mybatis動態sql的實現代碼》,本文關鍵詞  Mybatis4,之,Mybatis,動態,sql,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Mybatis4 之Mybatis動態sql的實現代碼》相關的同類信息!
  • 本頁收集關于Mybatis4 之Mybatis動態sql的實現代碼的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美精品久久一区二区三区| 国模冰冰炮一区二区| 日本欧美一区二区在线观看| 中文字幕在线免费不卡| 国产人妖乱国产精品人妖| 91免费国产在线观看| 美美哒免费高清在线观看视频一区二区 | 性欧美大战久久久久久久久| 亚洲激情图片qvod| 欧洲精品视频在线观看| 天天综合网天天综合色| 国产一区二区三区不卡在线观看| 一区二区三区欧美亚洲| 久久久精品2019中文字幕之3| 久久蜜桃av一区二区天堂| 99精品国产热久久91蜜凸| 另类欧美日韩国产在线| 精品亚洲porn| 午夜精品一区二区三区免费视频| 色综合亚洲欧洲| 成人黄色国产精品网站大全在线免费观看| 亚洲成人资源网| 99精品偷自拍| 欧美视频一区在线| 中文字幕亚洲在| 国产精品一二三区在线| 丝袜亚洲另类丝袜在线| 日韩欧美国产小视频| 国产aⅴ精品一区二区三区色成熟| 色域天天综合网| 亚洲欧洲99久久| 中文字幕亚洲区| 中文字幕高清一区| 99视频一区二区| 91网站在线播放| 亚洲成av人在线观看| 777欧美精品| 免费一级欧美片在线观看| 国产在线看一区| 成人黄色片在线观看| 乱一区二区av| 日韩欧美二区三区| 激情av综合网| 国产精品美女久久福利网站| 男女男精品网站| 久久久三级国产网站| 精品久久久久99| 免费在线观看一区| 午夜亚洲国产au精品一区二区 | 91理论电影在线观看| 日韩视频一区二区在线观看| 免费人成黄页网站在线一区二区| 欧美性猛片xxxx免费看久爱| 中文字幕欧美一区| av一区二区三区四区| 国产精品亚洲专一区二区三区 | 中文字幕精品—区二区四季| 亚洲大片免费看| 精品欧美乱码久久久久久1区2区| 欧美猛男gaygay网站| 一卡二卡三卡日韩欧美| 欧美日韩不卡一区| 麻豆极品一区二区三区| 51精品久久久久久久蜜臀| 26uuu精品一区二区三区四区在线| 欧美大片在线观看一区| 成人av高清在线| 久久久精品免费网站| 99久久er热在这里只有精品66| 欧美性xxxxx极品少妇| 国产成人亚洲精品狼色在线 | 国产精品久久久99| 日韩视频一区二区三区 | 国产**成人网毛片九色 | 狠狠色综合播放一区二区| 欧美日韩你懂的| 视频一区免费在线观看| 国产精品久久久久久一区二区三区 | 琪琪久久久久日韩精品| 国产成人精品免费看| 亚洲国产日韩在线一区模特| 欧美本精品男人aⅴ天堂| 91精品在线观看入口| 免费三级欧美电影| 91影院在线观看| 亚洲精品网站在线观看| a级精品国产片在线观看| 欧美日韩国产在线播放网站| 蜜桃av一区二区在线观看| 91精品国产乱码| 国产成人免费视频网站高清观看视频 | 亚洲小说欧美激情另类| 福利电影一区二区| 欧美一区二区啪啪| 成人一区二区三区在线观看| 欧美国产亚洲另类动漫| 欧美日韩在线观看一区二区| 五月激情六月综合| 精品成人免费观看| 99久久免费精品| 亚洲无线码一区二区三区| 欧美成人福利视频| 国产精品18久久久久久久网站| 国产精品午夜在线观看| 欧美日产国产精品| 日av在线不卡| 亚洲精品国产a| 91麻豆精品国产91久久久久久久久| 免费精品视频最新在线| 亚洲三级视频在线观看| 欧美精品乱码久久久久久按摩| 亚洲国产日韩一级| 国产喷白浆一区二区三区| 97精品视频在线观看自产线路二| 日本在线播放一区二区三区| 久久精品欧美日韩| 99精品国产99久久久久久白柏| 精品系列免费在线观看| 国产精品热久久久久夜色精品三区| 欧美一区二区啪啪| www.性欧美| 日韩电影在线一区二区三区| 一区二区三区欧美| 欧美videos中文字幕| 天堂va蜜桃一区二区三区漫画版| 中文字幕一区二区三区色视频| 欧美日本视频在线| 在线免费观看日韩欧美| 国产乱人伦偷精品视频免下载| 亚洲美女电影在线| 中文字幕不卡一区| 欧美一区二区成人| 国产精品影视在线观看| 精品亚洲免费视频| 亚洲国产日韩a在线播放性色| 亚洲欧美另类图片小说| www国产精品av| 色婷婷狠狠综合| 91麻豆精品在线观看| 国产一区二区精品久久99| 久久综合狠狠综合| 精品88久久久久88久久久| 91尤物视频在线观看| 色婷婷av一区二区三区gif| 狠狠色丁香婷综合久久| 国产一区二区三区香蕉| 日本一不卡视频| 久久精品99久久久| 亚洲国产精品麻豆| 国产清纯美女被跳蛋高潮一区二区久久w| 久久亚洲综合av| 欧美一区二区三区播放老司机| 欧美精品第1页| 欧美日韩一区二区三区视频| 国产乱理伦片在线观看夜一区| 国产成人av一区| 久久99国产精品久久99| 国内偷窥港台综合视频在线播放| 亚洲高清免费视频| 亚洲精品久久嫩草网站秘色| 亚洲在线中文字幕| 中文字幕字幕中文在线中不卡视频| 亚洲欧美日韩一区二区| 中文字幕一区二区三区色视频 | 精品国产乱码久久久久久牛牛 | 亚洲三级免费观看| 亚洲综合色自拍一区| 亚洲欧美另类小说| 亚洲国产精品影院| 亚洲一二三四区| 欧美日韩日本视频| 欧美剧情片在线观看| 9191久久久久久久久久久| 日韩三级电影网址| 欧美成人三级在线| 亚洲视频1区2区| 亚洲精品免费看| 亚洲精品国产无套在线观| 日韩二区在线观看| 蜜桃视频一区二区| 成人在线视频一区二区| 成人免费视频一区二区| 大胆亚洲人体视频| 91精品欧美综合在线观看最新 | 欧美优质美女网站| 欧美精品九九99久久| 欧美一二区视频| 亚洲婷婷综合色高清在线| 亚洲欧美偷拍三级| 另类小说综合欧美亚洲| 国产九色sp调教91| 国产电影精品久久禁18| 欧美日韩一区在线观看| 91精品国产品国语在线不卡| 国产精品乱码妇女bbbb| 亚洲免费伊人电影| 亚洲日本乱码在线观看| 国产真实乱偷精品视频免| www.av亚洲| 精品成人佐山爱一区二区|