av在线观看网站免费,欧美成人aaa片一区国产精品,精品国产乱码久久久久久免费,麻豆果冻传媒2021精品传媒一区,国产精品自在欧美一区

電子文檔交易市場
安卓APP | ios版本
電子文檔交易市場
安卓APP | ios版本

MyBatis 實現(xiàn)MySQL的動態(tài) SQL 寫法

14頁
  • 賣家[上傳人]:知***
  • 文檔編號:597195863
  • 上傳時間:2025-01-20
  • 文檔格式:DOCX
  • 文檔大小:135.02KB
  • 下載文檔到電腦,查找使用更方便

    16 金貝

    還剩頁未讀,繼續(xù)閱讀

    / 14 舉報 版權(quán)申訴 馬上下載
  • 文本預(yù)覽
  • 下載提示
  • 常見問題
    • MyBatis 實現(xiàn)MySQL的動態(tài) SQL 寫法1.Mybatis 動態(tài) sql 是做什么的?Mybatis 動態(tài) sql 可以讓我們在 Xml 映射文件內(nèi),以標(biāo)簽的形式編寫動態(tài) sql,完成邏輯判斷和動態(tài)拼接 sql 的功能2.Mybatis 的 9 種 動 態(tài) sql 標(biāo) 簽有哪些?3.動態(tài) sql 的執(zhí)行原理?原理為:使用 OGNL 從 sql 參數(shù)對象中計算表達(dá)式的值,根據(jù)表達(dá)式的值動態(tài)拼接 sql,以此來完成動態(tài) sql 的功能MyBatis標(biāo)簽1.if標(biāo)簽:條件判斷MyBatis if 類似于 Java 中的 if 語句,是 MyBatis 中最常用的判斷語句使用 if 標(biāo)簽可以節(jié)省許多拼接 SQL 的工作,把精力集中在 XML 的維護上1)不使用動態(tài)sqlif 語句使用方法簡單,常常與 test 屬性聯(lián)合使用語法如下:????SQL語句2)使用動態(tài)sql上面的查詢語句,我們可以發(fā)現(xiàn),如果?#{username}?為空,那么查詢結(jié)果也是空,如何解決這個問題呢?使用 if 來判斷,可多個 if 語句同時使用以下語句表示為可以按照網(wǎng)站名稱(name)或者網(wǎng)址(url)進(jìn)行模糊查詢。

      如果您不輸入名稱或網(wǎng)址,則返回所有的網(wǎng)站記錄但是,如果你傳遞了任意一個參數(shù),它就會返回與給定參數(shù)相匹配的記錄2.where+if標(biāo)簽where、if同時使用可以進(jìn)行查詢、模糊查詢注意,失敗后,??關(guān)鍵字只會去掉庫表字段賦值前面的and,不會去掉語句后面的and關(guān)鍵字,即注意,?只會去掉?語句中的最開始的and關(guān)鍵字所以下面的形式是不可取的這個“where”標(biāo)簽會知道如果它包含的標(biāo)簽中有返回值的話,它就插入一個‘where’此外,如果標(biāo)簽返回的內(nèi)容是以AND 或OR 開頭的,則它會剔除掉3.set標(biāo)簽set可以用來修改4.choose(when,otherwise) 語句有時候,我們不想用到所有的查詢條件,只想選擇其中的一個,查詢條件有一個滿足即可,使用 choose 標(biāo)簽可以解決此類問題,類似于 Java 的 switch 語句也就是說,這里我們有三個條件,id、username、sex,只能選擇一個作為查詢條件· 如果 id 不為空,那么查詢語句為:select * from user where id=?· 如果 id 為空,那么看username 是否為空,如果不為空,那么語句為?select * from user where username=?;· 如果 username 為空,那么查詢語句為?select * from user where sex=?5.trimtrim標(biāo)記是一個格式化的標(biāo)記,可以完成set或者是where標(biāo)記的功能①、用 trim 改寫上面第二點的 if+where 語句· prefix:前綴· prefixoverride:去掉第一個and或者是or②、用 trim 改寫上面第三點的 if+set 語句· suffix:后綴· suffixoverride:去掉最后一個逗號(也可以是其他的標(biāo)記,就像是上面前綴中的and一樣)③、trim+if同時使用可以添加6.MyBatis foreach標(biāo)簽foreach是用來對集合的遍歷,這個和Java中的功能很類似。

      通常處理SQL中的in語句foreach 元素的功能非常強大,它允許你指定一個集合,聲明可以在元素體內(nèi)使用的集合項(item)和索引(index)變量它也允許你指定開頭與結(jié)尾的字符串以及集合項迭代之間的分隔符這個元素也不會錯誤地添加多余的分隔符你可以將任何可迭代對象(如 List、Set 等)、Map 對象或者數(shù)組對象作為集合參數(shù)傳遞給 foreach當(dāng)使用可迭代對象或者數(shù)組時,index 是當(dāng)前迭代的序號,item 的值是本次迭代獲取到的元素當(dāng)使用 Map 對象(或者 Map.Entry 對象的集合)時,index 是鍵,item 是值整合案例xml????????????select??*??from??student????????????????????????????????????????????WHERE?1=1????????????????????AND?sid?like?#{sid}????????????????????????????????????????????????????????????????????????????????sacc?like?concat('%'?#{sacc}?'%')????????????????????????????????????????????????????AND?sname?like?concat('%'?#{sname}?'%')????????????????????????????????????????????????????AND?sex=#{sex}????????????????????????????????????????????????????AND?phone=#{phone}????????????????????????????????????????????????update?student????????????????????sname=#{sname},????????????spwd=#{spwd},????????????sex=#{sex},????????????phone=#{phone}????????sid=#{sid}????????????????where?sid=#{sid}????????????????insert??into?student????????????????????sname,????????????spwd,????????????sex,????????????phone,????????????????????????????#{sname},????????????#{spwd},????????????#{sex},????????????#{phone}?????????????????????????WHERE?sid?in????????????????????#{ids}????????????????????????delete??from??student??where??sid?in????????????????????#{ids}????????????測試類:package?com.sea.test;import?com.sea.entity.Student;import?com.sea.mapper.StuMapper;import?org.apache.ibatis.io.Resources;import?org.apache.ibatis.session.SqlSession;import?org.apache.ibatis.session.SqlSessionFactory;import?org.apache.ibatis.session.SqlSessionFactoryBuilder;import?org.junit.After;import?org.junit.Before;import?org.junit.Test;import?java.io.IOException;import?java.io.InputStream;import?java.util.List;public?class?StuTest?{????。

      點擊閱讀更多內(nèi)容
    關(guān)于金鋤頭網(wǎng) - 版權(quán)申訴 - 免責(zé)聲明 - 誠邀英才 - 聯(lián)系我們
    手機版 | 川公網(wǎng)安備 51140202000112號 | 經(jīng)營許可證(蜀ICP備13022795號)
    ?2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.