国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

mybatis 為什么千萬不要使用 where 1=1

瀏覽:2日期:2023-10-19 12:31:36
1.解決方案

下面是mybatis查詢語句,如果我們這次我們將 “state = ‘ACTIVE’” 設置成動態條件,看看會發生什么。

<select resultType='Blog'> SELECT * FROM BLOG WHERE <if test='state != null'> state = #{state} </if> <if test='title != null'> AND title like #{title} </if> <if test='author != null and author.name != null'> AND author_name like #{author.name} </if></select>

如果沒有匹配的條件會怎么樣?最終這條 SQL 會變成這樣:

SELECT * FROM BLOGWHERE

這會導致查詢失敗。如果匹配的只是第二個條件又會怎樣?這條 SQL 會是這樣:

SELECT * FROM BLOGWHEREAND title like ‘someTitle’

這個查詢也會失敗。這個問題不能簡單地用條件元素來解決。這個問題是如此的難以解決,以至于解決過的人不會再想碰到這種問題。

MyBatis 有一個簡單且適合大多數場景的解決辦法。而在其他場景中,可以對其進行自定義以符合需求。而這,只需要一處簡單的改動:

<select resultType='Blog'> SELECT * FROM BLOG <where> <if test='state != null'> state = #{state} </if> <if test='title != null'>AND title like #{title} </if> <if test='author != null and author.name != null'>AND author_name like #{author.name} </if> </where></select>

where 元素只會在子元素返回任何內容的情況下才插入 “WHERE” 子句。而且,若子句的開頭為 “AND” 或 “OR”,where 元素也會將它們去除。

2.為什么不能使用1=1

1.會導致表中的數據索引失效2.垃圾條件,沒必要加

3.官方文檔地址

mybatis官網地址

到此這篇關于mybatis 為什么千萬不要使用 where 1=1的文章就介紹到這了,更多相關mybatis where1=1內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Mybatis 數據庫
相關文章:
主站蜘蛛池模板: 亚洲精品高清国产一线久久97 | 亚洲高清免费视频 | 成人毛片18女人毛片免费 | 亚洲人成网站色7799在线观看 | 网禁呦萝资源网站在线观看 | 国产日韩精品一区二区 | 久久不色 | 久久爱99re| 91av久久| 欧美一级毛片大片免费播放 | 国产成人亚洲综合 | 欧美激情视频在线观看一区二区三区 | 国产成人精品久久亚洲高清不卡 | 99精品久久久久久久免费看蜜月 | 又黄又www| 久久国产精品一区二区三区 | 国产精品白浆流出视频 | 国产一区二区福利久久 | 中文字幕国产欧美 | 日本精品视频在线播放 | 另类专区欧美 | 国产欧美视频一区二区三区 | 国产久草视频在线 | 亚洲精品美女在线观看播放 | 日本免费不卡在线一区二区三区 | 成人免费网址在线 | 国产国语一级毛片全部 | 九色自拍视频 | 加勒比一本一道在线 | 欧美一级二级三级 | 亚洲欧美日本在线 | 日韩免费一级 | 久草勉费视频 | 国产精品18久久久久久久久久 | 国产高清精品毛片基地 | 国产一区二区在线视频播放 | 亚洲精品国产一区二区图片欧美 | 国产成人精品三级 | 国产最爽的乱淫视频国语对 | 欧洲精品一区二区三区在线观看 | 午夜综合 |