国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MyBatis案例 | 使用映射配置文件實(shí)現(xiàn)CRUD操作——?jiǎng)討B(tài)SQL優(yōu)化條件查詢

這篇具有很好參考價(jià)值的文章主要介紹了MyBatis案例 | 使用映射配置文件實(shí)現(xiàn)CRUD操作——?jiǎng)討B(tài)SQL優(yōu)化條件查詢。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

本專欄主要是記錄學(xué)習(xí)完JavaSE后學(xué)習(xí)JavaWeb部分的一些知識(shí)點(diǎn)總結(jié)以及遇到的一些問題等,如果剛開始學(xué)習(xí)Java的小伙伴可以點(diǎn)擊下方連接查看專欄
本專欄地址:??JavaWeb
Java入門篇: ??Java基礎(chǔ)學(xué)習(xí)篇
Java進(jìn)階學(xué)習(xí)篇(持續(xù)更新中):??Java進(jìn)階學(xué)習(xí)篇

mybatis sql 查詢優(yōu)化,JavaWeb,# MyBatis,mybatis,sql,java
本系列文章會(huì)將講述有關(guān)于如何使用MyBatis完成增刪查改的操作,預(yù)計(jì)本系列文章會(huì)有以下這些文章,在寫完本系列的文章后會(huì)有一篇文章羅列這些文章以及其地址(傳送門)小伙伴們直接點(diǎn)擊查看即可

文章名稱 文章地址
查詢所有數(shù)據(jù) 使用映射配置文件實(shí)現(xiàn)CRUD操作——查詢所有數(shù)據(jù)
查詢?cè)斍?/td> 使用映射配置文件實(shí)現(xiàn)CRUD操作——通過主鍵查詢對(duì)應(yīng)數(shù)據(jù)
使用映射配置文件實(shí)現(xiàn)CRUD操作——多條件查詢
添加數(shù)據(jù)
修改全部字段
修改動(dòng)態(tài)字段
刪除一條數(shù)據(jù)
批量刪除數(shù)據(jù)

一、前言

在上一篇文章中我們說到:?jiǎn)螁问褂脜?shù)占位符去編寫SQL語(yǔ)句還是存在一定的問題的,比如當(dāng)我們有一個(gè)參數(shù)沒有值的時(shí)候,就查詢不出來結(jié)果了,而這種情況極有可能發(fā)生(因?yàn)橛脩舨灰欢〞?huì)篩選所有條件)所以要用動(dòng)態(tài)SQL來解決問題

二、概述

在MyBatis中有以下幾個(gè)屬性標(biāo)簽來支撐動(dòng)態(tài)SQL

  • if

  • choose(when,otherwise)

  • trim(where,set)

  • foreach

三、if標(biāo)簽(多條件動(dòng)態(tài)查詢)

1.概述

if標(biāo)簽是條件判斷,if標(biāo)簽里面寫test,即邏輯表達(dá)式,可以理解為if后面的判斷語(yǔ)句

2.格式

<if test="···">
	···
</if>

3.具體實(shí)例

<select id="selectByCondition" resultMap="brandResultMap">

        select
        *
        from tb_brand
        where
        <if test="status != null">
            status = #{status}
        </if>

        <if test="companyName != null and conpanyName != '' ">
            and company_name like #{companyName}
        </if>

        <if test="brandName != null and brandName != '' ">
            and brand_name like #{brandName}
        </if>


    </select>

4.弊端

當(dāng)我們stasus參數(shù)沒有傳入的時(shí)候,SQL語(yǔ)句會(huì)變化,變成一個(gè)不正確的SQL語(yǔ)句,如下所示,所以在查詢過程中也會(huì)報(bào)錯(cuò),無(wú)法正確實(shí)現(xiàn)查詢要求,但是如果不加and的話,原本的SQL語(yǔ)句語(yǔ)法也不對(duì),所以接下來會(huì)講述如何解決
mybatis sql 查詢優(yōu)化,JavaWeb,# MyBatis,mybatis,sql,java

此時(shí) SQL 語(yǔ)句

select * from tb_brand where and company_name like ? and brand_name like ?

5.解決弊端方法

1??使用恒等式

這里我們只需要在where后加一個(gè)恒等式"1 = 1",那么就算第一個(gè)條件沒有執(zhí)行,SQL語(yǔ)句也不會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤,拼接完后的SQL語(yǔ)句會(huì)變成如下這樣,也就不會(huì)報(bào)錯(cuò),可以正常執(zhí)行,但是依然不是最優(yōu)解。MyBtais提供了一個(gè)where標(biāo)簽可以一下子解決問題

select * from tb_brand where 1 = 1 and company_name like ? and brand_name like ?

2??使用where標(biāo)簽

這個(gè)標(biāo)簽可以 自動(dòng)生成SQL語(yǔ)句中的WHERE關(guān)鍵字,并判斷是否只有一個(gè)條件,如果是,還會(huì) 自動(dòng)去掉AND,保證SQL語(yǔ)句的語(yǔ)法正確性
mybatis sql 查詢優(yōu)化,JavaWeb,# MyBatis,mybatis,sql,java

四、choose標(biāo)簽(單條件動(dòng)態(tài)查詢)

1.概述

choose標(biāo)簽是可以從多個(gè)條件中選擇一個(gè),可以把它看成Java中的switch語(yǔ)句,既然是要選擇,那么每個(gè)條件都要有一個(gè)when標(biāo)簽包裹語(yǔ)句,如果所有條件都不符合的話,就要用otherwise標(biāo)簽來包裹最后的語(yǔ)句,一般為1 = 1,即直接查詢所有的數(shù)據(jù)

一般會(huì)使用在單條件的動(dòng)態(tài)查詢中,比如下拉表單選擇要查詢的條件(狀態(tài)/品牌名稱/公司名稱),再輸入自己想要搜索的關(guān)鍵字

2.格式

<choose>

	<when>
		···
	</when>
	
	<when>
		···
	</when>
	
	<otherwise>
		···
	</otherwise>
	
</choose>

3.實(shí)例

<select id="selectByConditionSingle" resultMap="brandResultMap">
        select *
        from tb_brand
        <where>
       		<choose>

            	<when test="status != null">
                status = #{status}
            	</when>

            	<when test="companyName != null and conpanyName != '' ">
                company_name like #{companyName}
            	</when>

            	<when test="brandName != null and brandName != '' ">
                brand_name like #{brandName}
            	</when>
            	
            	<otherwise>
                1 = 1;
            	</otherwise>

        	</choose>
	</where>
</select>

這里的測(cè)試類與前面相同,這里就不再贅述了,大家可以查看前面的文章來寫測(cè)試類,這里我就傳入了一個(gè)status參數(shù)來查詢,即查詢狀態(tài)為1的數(shù)據(jù),結(jié)果如下

[Brand{id=2, brandName=‘華為’, companyName=‘華為技術(shù)有限公司’, ordered=100, description=‘華為致力于把數(shù)字世界帶入每個(gè)人、每個(gè)家庭、每個(gè)組織,構(gòu)建萬(wàn)物互聯(lián)的智能世界’, status=1}, Brand{id=3, brandName=‘小米’, companyName=‘小米科技有限公司’, ordered=50, description=‘a(chǎn)re you ok’, status=1}]

如果沒有任何一個(gè)參數(shù)傳遞進(jìn)去的話,那么執(zhí)行的會(huì)是1 = 1,那結(jié)果應(yīng)該是表格中所有的數(shù)據(jù)
mybatis sql 查詢優(yōu)化,JavaWeb,# MyBatis,mybatis,sql,java

[Brand{id=1, brandName=‘三只松鼠’, companyName=‘三只松鼠股份有限公司’, ordered=5, description=‘好吃不上火’, status=0}, Brand{id=2, brandName=‘華為’, companyName=‘華為技術(shù)有限公司’, ordered=100, description=‘華為致力于把數(shù)字世界帶入每個(gè)人、每個(gè)家庭、每個(gè)組織,構(gòu)建萬(wàn)物互聯(lián)的智能世界’, status=1}, Brand{id=3, brandName=‘小米’, companyName=‘小米科技有限公司’, ordered=50, description=‘a(chǎn)re you ok’, status=1}]

五、結(jié)語(yǔ)

接下來將講述添加功能,有任何問題可以留言評(píng)論文章來源地址http://www.zghlxwxcb.cn/news/detail-786085.html

到了這里,關(guān)于MyBatis案例 | 使用映射配置文件實(shí)現(xiàn)CRUD操作——?jiǎng)討B(tài)SQL優(yōu)化條件查詢的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【MyBatis】1、MyBatis 核心配置文件、多表查詢、實(shí)體映射文件 ......

    【MyBatis】1、MyBatis 核心配置文件、多表查詢、實(shí)體映射文件 ......

    SSM( S pring、 S pringMVC、 M yBatis) Apache Shiro SpringBoot 事務(wù) :若將 N 個(gè) 數(shù)據(jù)庫(kù)操作 (CRUD)放到同一個(gè)事務(wù)中,則這 N 個(gè)數(shù)據(jù)庫(kù)操作最終要么全都生效,要么全都不生效 ?? 開啟事務(wù)【 START TRANSACTION 】 ?? 回滾事務(wù):若事務(wù)中的某個(gè)數(shù)據(jù)庫(kù)操作失敗,其他所有數(shù)據(jù)庫(kù)操作都需要

    2024年02月08日
    瀏覽(58)
  • 設(shè)置代碼模板創(chuàng)建sql映射文件、Mybatis主配置文件

    設(shè)置代碼模板創(chuàng)建sql映射文件、Mybatis主配置文件

    目錄 1、Sql映射(Sql? Mapper)文件的介紹 2、Mybatis的主配置文件的介紹 3、通過代碼模板創(chuàng)建Sql映射文件 4、通過代碼模板創(chuàng)建Mybatis主配置文件 創(chuàng)建主配置文件:名稱為 mybatis.xml 支持中文的 url 同理:

    2024年01月23日
    瀏覽(22)
  • MyBatis的使用(XML映射文件)

    MyBatis基于注解開發(fā)簡(jiǎn)單便捷,但是弊端是失去SQL語(yǔ)句的靈活性,不能根據(jù)實(shí)際情況產(chǎn)生不同的SQL語(yǔ)句 MyBatis除了支持注解開發(fā)以外,還支持一種開發(fā)方式:XML映射文件,將SQL語(yǔ)句寫到XML映射文件中,基于更多種的選擇可以讓SQL變得更加靈活 1.開發(fā)方式 1.和基于注解開發(fā)方式一

    2024年02月08日
    瀏覽(26)
  • Mybatis方式完成CRUD操作

    Mybatis方式完成CRUD操作

    Java開發(fā)在以前做數(shù)據(jù)庫(kù)連接的時(shí)候通過JDBC來完成,非常麻煩。 現(xiàn)在引入了MyBatis這個(gè)框架,Mybatis是簡(jiǎn)化數(shù)據(jù)庫(kù)操作的持久層框架。 使用Mybatis的好處: mybatis 可以將對(duì)數(shù)據(jù)表的操作(sql,方法)等等直接剝離,寫到 xml 配置文件,實(shí)現(xiàn)和 java 代碼的解耦 MyBatis 在 java 和 sql 之間提

    2024年02月05日
    瀏覽(27)
  • 二、搭建MyBatis采用xml方式,驗(yàn)證CRUD(增刪改查操作)

    二、搭建MyBatis采用xml方式,驗(yàn)證CRUD(增刪改查操作)

    IDE :idea 2021.1 構(gòu)建工具 :maven 3.8.4 MySQL版本 :MySQL 5.7.40 MyBatis版本 :MyBatis 3.5.7 數(shù)據(jù)庫(kù)表: 項(xiàng)目初始目錄 引入依賴 com/mybatis/entity/User.java 習(xí)慣上命名為mybatis-config.xml ,這個(gè)文件名僅僅只是建議,并非強(qiáng)制要求。將來整合Spring 之后,這個(gè)配置文件可以省略,所以大家操作時(shí)

    2024年02月01日
    瀏覽(24)
  • Spring Boot入門(10):Mybatis之XML映射文件>、<=等特殊符號(hào)使用 | 保姆級(jí)教程

    Spring Boot入門(10):Mybatis之XML映射文件>、<=等特殊符號(hào)使用 | 保姆級(jí)教程

    ? ? ? ? 在Mybatis的XML映射文件中,我們經(jīng)常需要使用一些特殊符號(hào)來完成SQL語(yǔ)句的拼接,比如小于號(hào)“”、小于等于號(hào)“=”等。然而,由于這些符號(hào)在XML中有特殊的含義,因此直接在映射文件中使用可能會(huì)導(dǎo)致編譯錯(cuò)誤或者運(yùn)行時(shí)異常。那么,如何才能正確地使用這些特殊

    2024年02月11日
    瀏覽(39)
  • Mybatis之簡(jiǎn)介、使用操作(安裝、XML、SqlSession、映射的SQL語(yǔ)句、命名空間、作用域和生命周期)

    學(xué)習(xí)的最大理由是想擺脫平庸,早一天就多一份人生的精彩;遲一天就多一天平庸的困擾。各位小伙伴,如果您: 想系統(tǒng)/深入學(xué)習(xí)某技術(shù)知識(shí)點(diǎn)… 一個(gè)人摸索學(xué)習(xí)很難堅(jiān)持,想組團(tuán)高效學(xué)習(xí)… 想寫博客但無(wú)從下手,急需寫作干貨注入能量… 熱愛寫作,愿意讓自己成為更好

    2024年02月04日
    瀏覽(24)
  • JDBC詳解(三):使用PreparedStatement實(shí)現(xiàn)CRUD操作(超詳解)

    JDBC詳解(三):使用PreparedStatement實(shí)現(xiàn)CRUD操作(超詳解)

    本博主將用CSDN記錄軟件開發(fā)求學(xué)之路上親身所得與所學(xué)的心得與知識(shí),有興趣的小伙伴可以關(guān)注博主!也許一個(gè)人獨(dú)行,可以走的很快,但是一群人結(jié)伴而行,才能走的更遠(yuǎn)! ? 數(shù)據(jù)庫(kù)連接被用于向數(shù)據(jù)庫(kù)服務(wù)器發(fā)送命令和 SQL 語(yǔ)句,并接受數(shù)據(jù)庫(kù)服務(wù)器返回的結(jié)果。其實(shí)

    2023年04月26日
    瀏覽(21)
  • Spring Boot入門(10):Mybatis之XML映射文件中如何使用特殊符號(hào)?揭秘<、<=等符號(hào)的正確使用方法!

    Spring Boot入門(10):Mybatis之XML映射文件中如何使用特殊符號(hào)?揭秘<、<=等符號(hào)的正確使用方法!

    ? ? ? ? 在Mybatis的XML映射文件中,我們經(jīng)常需要使用一些特殊符號(hào)來完成SQL語(yǔ)句的拼接,比如小于號(hào)“”、小于等于號(hào)“=”等。然而,由于這些符號(hào)在XML中有特殊的含義,因此直接在映射文件中使用可能會(huì)導(dǎo)致編譯錯(cuò)誤或者運(yùn)行時(shí)異常。那么,如何才能正確地使用這些特殊

    2024年02月09日
    瀏覽(33)
  • Spring Boot入門(09):如何使用MyBatis的XML配置方式實(shí)現(xiàn)MySQL的增刪改查操作?

    Spring Boot入門(09):如何使用MyBatis的XML配置方式實(shí)現(xiàn)MySQL的增刪改查操作?

    ????????想要快速高效地開發(fā)Java Web應(yīng)用程序,選擇使用Spring Boot和MyBatis無(wú)疑是明智之舉。本篇文章將教你使用MyBatis的XML配置方式,結(jié)合MySQL數(shù)據(jù)庫(kù),實(shí)現(xiàn)常見的增刪改查操作,讓你的應(yīng)用程序更加實(shí)用和強(qiáng)大。跟隨本文一起來探索MyBatis在Spring Boot中的力量吧! ? ? ? ?

    2024年02月11日
    瀏覽(33)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包