最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mybatis如何實(shí)現(xiàn)的數(shù)據(jù)庫排序

 更新時間:2022年03月22日 15:37:49   作者:黃小魚ZZZ  
這篇文章主要介紹了mybatis如何實(shí)現(xiàn)的數(shù)據(jù)庫排序,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

mybatis數(shù)據(jù)庫排序

今天用到了對數(shù)據(jù)庫按照倒序進(jìn)行輸出。因?yàn)閯偨佑|mybatis,所以對這方面還不是太了解,再網(wǎng)上搜了好長時間終于找到了一些有用的信息。

我的目標(biāo)是這樣的,數(shù)據(jù)庫中的信息分為無效和有效,對數(shù)據(jù)庫中的信息的有效值按照倒序進(jìn)行輸出,輸出到表格中,

在網(wǎng)上看到了這樣的語句,SELECT * FROM photo ORDER BY id DESC;于是我就直接拿過來用了,但是卻出現(xiàn)了問題,因?yàn)槲业氖怯袟l件排序的,

嘗試了幾次后我發(fā)現(xiàn)是這樣寫的, select 

<include refid="Base_Column_List" />
from manager_user where is_valid = 1?

ORDER BY id DESC;這樣的話輸出的內(nèi)容就達(dá)到了我的目標(biāo),將語句中的desc換成asc就可以進(jìn)行升序排序

mybatis order by 排序

在使用MyBatis解析xml進(jìn)行排序的時候,遇見排序無效的問題!

  • #將傳入的數(shù)據(jù)都當(dāng)成一個字符串,會對自動傳入的數(shù)據(jù)加一個雙引號。如:order by #{user_id},如果傳入的值是111,那么解析成sql時的值為order by “111”, 如果傳入的值是id,則解析成的sql為order by “id”。
  • $將傳入的數(shù)據(jù)直接顯示生成在sql中。如:order by ${user_id},如果傳入的值是111,那么解析成sql時的值為order by 111, 如果傳入的值是id,則解析成的sql為order by id。

方式能夠很大程度防止sql注入

  • $方式無法防止Sql注入。
  • $方式一般用于傳入數(shù)據(jù)庫對象,例如傳入表名。
  • 一般能用#的就別用$。

order by 之后要使用$而非#

附解決代碼段:

其中orderByField就是傳入進(jìn)行排序的參數(shù)值!

<choose>
? <when test="orderByField != null and orderByField !=''">
? ? <choose><when test="isAsc == true">
? ? ? order by ${orderByField} ASC
? </when>
? <otherwise>
? ? order by ${orderByField} DESC
? </otherwise></choose>
? </when>
<otherwise>
? order by id DESC

</otherwise></choose>

? ORDER BY
? ? ? ? <choose>
? ? ? ? <when test="sort!=null">
? ? ? ? ? ? ? ? #{sort,jdbcType=VARCHAR}
? ? ? ? ? ? <if test="order!=null">
? ? ? ? ? ? ? ? #{order,jdbcType=VARCHAR}
? ? ? ? ? ? </if>
? ? ? ? </when>
? ? ? ? <otherwise>
? ? ? ? ? ? id asc , create_time asc
? ? ? ? </otherwise>
? ? ?</choose>

原因是: #{order,jdbcType=VARCHAR},MyBatis會自動將排序字段當(dāng)成一個字符串,等同于order by ‘create_time’ ‘desc’,可以通過執(zhí)行,但無效,與order by create_time desc結(jié)果不同

解決方法: 使用order,Mybatis會將其視作直接變量,變量替換成功后,不會再加上引號成為字符串,同樣排序順序也一樣

{order},因此

? ORDER BY
? ? ? ? <choose>
? ? ? ? <when test="sort!=null">
? ? ? ? ? ? ? ? ${sort}
? ? ? ? ? ? <if test="order!=null">
? ? ? ? ? ? ? ? ${order}
? ? ? ? ? ? </if>
? ? ? ? </when>
? ? ? ? <otherwise>
? ? ? ? ? ? id asc , create_time asc
? ? ? ? </otherwise>
? ? ?</choose>

#能很大程度的防止SQL注入 $無法防止Sql注入 $用于傳入數(shù)據(jù)庫對象 <![CDATA[]]>,在該符號內(nèi)的語句,不會被當(dāng)成字符串來處理,而是直接當(dāng)成sql語句,比如要執(zhí)行一個存儲過程。

在mapper文件中寫sql語句時,遇到特殊字符時,如:< > 等,建議使用

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中利用POI優(yōu)雅的導(dǎo)出Excel文件詳解

    Java中利用POI優(yōu)雅的導(dǎo)出Excel文件詳解

    這篇文章主要給大家介紹了關(guān)于Java中如何利用POI優(yōu)雅的導(dǎo)出Excel文件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • spring boot添加新模塊的方法教程

    spring boot添加新模塊的方法教程

    這篇文章主要給大家介紹了關(guān)于spring boot添加新模塊的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • java實(shí)現(xiàn)簡單五子棋小游戲(2)

    java實(shí)現(xiàn)簡單五子棋小游戲(2)

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡單五子棋小游戲的第二部分,添加游戲結(jié)束條件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • java協(xié)變返回類型使用示例

    java協(xié)變返回類型使用示例

    在面向?qū)ο蟪绦蛟O(shè)計(jì)中,協(xié)變返回類型指的是子類中的成員函數(shù)的返回值類型不必嚴(yán)格等同于父類中被重寫的成員函數(shù)的返回值類型,而可以是更"狹窄"的類型
    2014-02-02
  • Java實(shí)現(xiàn)文件壓縮與解壓的示例[zip格式,gzip格式]

    Java實(shí)現(xiàn)文件壓縮與解壓的示例[zip格式,gzip格式]

    本篇文章主要介紹了Java實(shí)現(xiàn)文件壓縮與解壓的示例[zip格式,gzip格式],具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-01-01
  • Spring Security的過濾器鏈機(jī)制

    Spring Security的過濾器鏈機(jī)制

    過濾器作為 ?Spring Security? 的重中之重,我們需要了解其中的機(jī)制,這樣我們才能根據(jù)業(yè)務(wù)需求的變化進(jìn)行定制,今天來探討一下 ?Spring Security? 中的過濾器鏈機(jī)制
    2022-08-08
  • Springboot整合Mybatis傳值的常用方式總結(jié)

    Springboot整合Mybatis傳值的常用方式總結(jié)

    今天給大家?guī)淼氖顷P(guān)于Springboot的相關(guān)知識,文章圍繞著Springboot整合Mybatis傳值的常用方式展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Java中的Set集合源碼詳細(xì)解讀

    Java中的Set集合源碼詳細(xì)解讀

    這篇文章主要介紹了Java中的Set集合源碼詳細(xì)解讀,Set注重獨(dú)一無二的性質(zhì),該體系集合用于存儲無序(存入和取出的順序不一定相同)元素, 值不能重復(fù),需要的朋友可以參考下
    2023-11-11
  • 淺談IDEA2018打包可執(zhí)行jar包的流程

    淺談IDEA2018打包可執(zhí)行jar包的流程

    這篇文章主要介紹了淺談IDEA2018打包可執(zhí)行jar包的流程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • SpringBoot3集成swagger文檔的使用方法

    SpringBoot3集成swagger文檔的使用方法

    本文介紹了Swagger的誕生背景、主要功能以及如何在Spring Boot 3中集成Swagger文檔,Swagger可以幫助自動生成API文檔,實(shí)現(xiàn)與代碼同步,并提供交互式測試功能,使用方法包括導(dǎo)入依賴、配置文檔、使用常見注解以及訪問生成的Swagger UI和文檔,感興趣的朋友跟隨小編一起看看吧
    2025-01-01

最新評論

包头市| 大厂| 泰兴市| 山东| 麻江县| 万荣县| 桓仁| 治多县| 遂平县| 大埔县| 内黄县| 太仆寺旗| 麦盖提县| 泰安市| 乌兰浩特市| 左权县| 池州市| 高雄县| 宜昌市| 筠连县| 沈阳市| 武宣县| 凤城市| 乌兰浩特市| 安图县| 若尔盖县| 洮南市| 丰都县| 盈江县| 朔州市| 梅州市| 义马市| 乃东县| 康保县| 漳平市| 壤塘县| 军事| 浦东新区| 修武县| 龙州县| 肇源县|