91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mybatis in查詢傳入String的方法是什么

發布時間:2021-10-09 15:42:21 來源:億速云 閱讀:190 作者:iii 欄目:開發技術

本篇內容主要講解“mybatis in查詢傳入String的方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“mybatis in查詢傳入String的方法是什么”吧!

mybatis in查詢傳入String

在使用 mybaits 進行 in 查詢時,傳入String,如1,2,3,發現查詢的結果并非我們想要的

這是因為#{}編譯完自動加雙引號“” 也就是變成in (“1,2,3”)

如果想要獲得我們想要的結果,可以使用${},編譯完是這樣的 in (1,2,3)

例如,查詢鈴音庫中多首鈴音的總數量

<select id="getProgsResourceCount" resultType="java.lang.Long"
 parameterType="com.progandresource.entity.ProgsResourceCond">
 select count(ring_no)
     from progandresmanage_ringinfo where valid_day > now()
 <if test="ringNo != '' and ringNo != null">
     and ring_no in (${ringNo})
 </if>
</select>

如果傳入參數是List或者Array,則直接用foreach即可

例如

<select id="getProgsResourceCount" resultType="java.lang.Long" parameterType="java.util.List">
 select count(ring_no)
     from progandresmanage_ringinfo where valid_day > now() and ring_no in 
 <foreach collection="list" item="item" index="index" open="(" close=")" separator=",">
            #{item, jdbcType=VARCHAR}
        </foreach>
</select>

mybatis in查詢傳入字符串參數

sql里的in操作符允許我們在where子句中規定多個值進行匹配。

語法:

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...);

在mybatis里,可以通過傳入數組或容器(array、list、set、map)通過foreach標簽來給in操作符指定參數。

問題:想要從org表中匹配字段org_id在OR001、OR002、OR004中的數據,org_id是字符串類型的字段。

常規方法是在mapper.java中傳入一個包含"OR001"、“OR002”、"OR004"的list對象orgIdList,在xml中:

SELECT * from org where org_id in 
<foreach item="orgId" index="index" collection="orgIdList" open="(" close=")" separator=",">
#{orgId}
</foreach>

如果要作為in的匹配參數的多個值在一個String類型的對象orgs中,想直接通過String傳入,有兩種實現方式。

1、在xml中用${orgs}把整個String作為sql的一部分

SELECT * from org where org_id in (${orgs})

這種寫法需要關注字符串orgs的內容在拼入之后,整個sql是否是符合語法的,按上面的需求和sql寫法,就要求作為sql一部分的orgs的值為"‘OR001',‘OR002',‘OR004'"。

參數直接以sql一部分的方式作為查詢語句存在sql注入的風險,有一些項目可能會一刀切地限制開發者不允許用這種寫法。

2、在xml的foreach標簽里,傳入collection屬性時將字符串用split函數轉為數組

SELECT * from org where org_id in 
<foreach item="orgId" index="index" collection="orgs.split(',')" open="(" close=")" separator=",">
#{orgId}
</foreach>

在這里傳入的orgs字符串的值可以為"OR001,OR002,OR004",在調用split函數時設置","分格,可以直接切分出三個字符串作為數組的元素。

到此,相信大家對“mybatis in查詢傳入String的方法是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

滁州市| 将乐县| 穆棱市| 临沂市| 沙洋县| 梁平县| 佳木斯市| 长岭县| 林口县| 岳普湖县| 沁阳市| 四子王旗| 普安县| 大安市| 桑日县| 昌图县| 阳谷县| 丹棱县| 敦煌市| 香港| 内乡县| 容城县| 莆田市| 乡宁县| 吴江市| 宜兰县| 陇川县| 自治县| 周口市| 兰西县| 德阳市| 夏邑县| 西贡区| 宣恩县| 容城县| 南宁市| 长春市| 栾川县| 彭山县| 苏尼特左旗| 遵义县|