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

您的位置:首頁/技術(shù)文章
文章詳情頁

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

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

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

<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 有一個簡單且適合大多數(shù)場景的解決辦法。而在其他場景中,可以對其進行自定義以符合需求。而這,只需要一處簡單的改動:

<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 元素只會在子元素返回任何內(nèi)容的情況下才插入 “WHERE” 子句。而且,若子句的開頭為 “AND” 或 “OR”,where 元素也會將它們?nèi)コ?/p>2.為什么不能使用1=1

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

3.官方文檔地址

mybatis官網(wǎng)地址

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

相關(guān)文章:
主站蜘蛛池模板: 亚洲三级网 | 国产精品久久久久久久久岛 | 日本欧美在线视频 | 成人三级网址 | a级毛片在线视频免费观看 a级免费 | 丁香婷婷影音先锋5566 | 日本韩国一级 | 中文字幕一区二区小泽玛利亚 | 国产精品久久国产三级国电话系列 | 免费黄色在线网址 | 亚洲精品一 | 免费国产黄网站在线观看视频 | 国产精品久久福利网站 | 在线观看精品视频网站www | 久久久精品免费热线观看 | 欧美成人三级网站在线观看 | 欧美一级毛片俄罗斯 | 国产区精品 | 96精品视频在线播放免费观看 | 婷婷丁香花麻豆 | 亚洲天码中文字幕第一页 | 国产日韩欧美一区 | 亚洲精品综合一区二区 | 中文字幕一区中文亚洲 | 国内精品视频成人一区二区 | 亚洲日韩精品欧美一区二区一 | 色综合91久久精品中文字幕 | 久久黄色网址 | 久久精品中文字幕不卡一二区 | 香蕉福利久久福利久久香蕉 | 国产成人精品高清在线观看99 | 国产一级爱c片免费播放 | 欧美乱大交xxxxx | 国产九九精品 | 国产在线视频欧美亚综合 | 国产欧美一区二区三区视频 | 国产一区二区fc2ppv在线播放 | 97视频免费在线 | 国产一区二区三区四区波多野结衣 | 欧美日韩一区二区在线观看视频 | a级毛片免费完整视频 |