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

MyBatis傳入List集合查詢數(shù)據(jù)問題

 更新時間:2023年02月07日 16:17:22   作者:single_cong  
這篇文章主要介紹了MyBatis傳入List集合查詢數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

MyBatis傳入List集合查詢數(shù)據(jù)

使用的是SSM框架,數(shù)據(jù)庫是MySQL,做查詢的時候傳入List集合,使用SQL語句的in方式查詢數(shù)據(jù)

主要有兩點問題

我的List集合是利用的另外一個語句查詢出來的,傳入?yún)?shù)是int類型,返回值是int類型的List集合:

List<Integer> select(Integer id);
<select id="select" resultType="java.util.List"
?? ?parameterType="java.lang.Integer">
?? ?select id
?? ?from section
?? ?where status='A'
?? ?and unit_id=#{id,jdbcType=INTEGER}
</select>

這是我第一次的時候使用的返回值類型(java.util.List),這種情況下在我執(zhí)行的時候會報錯:java.lang.UnsupportedOperationException

其實這里如果我們是要返回指定類型的集合直接寫java.lang.Integer(int類型)java.lang.String(字符串)等等就可以了,當(dāng)然也可以自定義一個resultMap

<select id="select" resultType="java.lang.Integer"
?? ?parameterType="java.lang.Integer">
?? ?select id
?? ?from section
?? ?where status='A'
?? ?and unit_id=#{id,jdbcType=INTEGER}
</select>

上面是通過一個id查詢出List集合,下面是將查到的這個List集合放入查詢條件中:

List<Test> selectById(List<Integer> id);
<select id="selectById" parameterType="java.util.List"
?? ?resultMap="BaseResultMap">
?? ?select * from test
?? ?where status = 'A'
?? ?and id in
?? ?<foreach collection="list" index="index" item="item" open="("
?? ??? ?separator="," close=")">
?? ??? ?#{item}
?? ?</foreach>
</select>

上述的查詢語句可以整合在一個sql語句中,這里為了創(chuàng)造list數(shù)據(jù)所以分開了。

使用foreach 語句循環(huán)集合中的數(shù)據(jù),item就是循環(huán)到的數(shù)據(jù),如果你是一個復(fù)雜類型的數(shù)據(jù)做批量插入的話可以使用item.屬性名 的方式獲取對應(yīng)值,類似于java的foreach循環(huán)語句,某些時候可能傳入的是Array數(shù)組,畢竟都說Array比List效率高,這種時候和上述方法類似,也是foreach語句。具體的分析后續(xù)更新。

MyBatis傳入List集合批量刪除

Model

public class FastDFSModel {
? ? private String pathId;
? ? private String modelId;
? ? private String csvpath;
? ? private String resultpath;
? ? private String updatetime;
? ? }

Dao

import org.apache.ibatis.annotations.Param;
?void deleteDateById(@Param("list") List<FastDFSModel> deleteList);

mapper

其中parameterType寫為list

foreach 中的collection寫為"list"

item 為遍歷的每一項,代表著model

在變量中用#{item.pathId}來獲取值

此業(yè)務(wù)為通過id進(jìn)行刪除

其中open="(" separator="," close=")"為拼接的in查詢,把id用逗號拼接起來

?<delete id="deleteDateById" parameterType="java.util.List">
? ? ? ? delete from T_FASTDFS_PATH t where t.path_id in
? ? ? ? <foreach item="item" collection="list" open="(" separator="," close=")">
? ? ? ? ? ? #{item.pathId,jdbcType=VARCHAR}
? ? ? ? </foreach>
? ? </delete>

控制臺打印如下

delete from T_FASTDFS_PATH t where t.path_id in ( ? , ? , ? ) 
 PreparedStatement - ==> Parameters: 2(String), 1(String), 3(String)

總結(jié)

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

相關(guān)文章

  • spring事務(wù)異常回滾實例解析

    spring事務(wù)異常回滾實例解析

    這篇文章主要介紹了spring事務(wù)異?;貪L實例解析,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • SpringBoot使用前綴樹過濾敏感詞的方法實例

    SpringBoot使用前綴樹過濾敏感詞的方法實例

    Trie也叫做字典樹、前綴樹(Prefix Tree)、單詞查找樹,特點:查找效率高,消耗內(nèi)存大,這篇文章主要給大家介紹了關(guān)于SpringBoot使用前綴樹過濾敏感詞的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • 關(guān)于spring web-mvc衍生注解

    關(guān)于spring web-mvc衍生注解

    這篇文章主要介紹了關(guān)于spring web-mvc衍生注解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Java利用for循環(huán)輸出空心菱形的實例代碼

    Java利用for循環(huán)輸出空心菱形的實例代碼

    這篇文章主要介紹了Java利用for循環(huán)輸出空心菱形的實例代碼,需要的朋友可以參考下
    2014-02-02
  • 什么是Java布隆過濾器?如何使用你知道嗎

    什么是Java布隆過濾器?如何使用你知道嗎

    這篇文章主要為大家詳細(xì)介紹了Java布隆過濾器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • 調(diào)用Process.waitfor導(dǎo)致的進(jìn)程掛起問題及解決

    調(diào)用Process.waitfor導(dǎo)致的進(jìn)程掛起問題及解決

    這篇文章主要介紹了調(diào)用Process.waitfor導(dǎo)致的進(jìn)程掛起問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • SpringSecurity6.x多種登錄方式配置小結(jié)

    SpringSecurity6.x多種登錄方式配置小結(jié)

    SpringSecurity6.x變了很多寫法,本文就來介紹一下SpringSecurity6.x多種登錄方式配置小結(jié),具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • IDEA如何對多線程進(jìn)行debug的示例詳解

    IDEA如何對多線程進(jìn)行debug的示例詳解

    開發(fā)中使用到多線程的時候不少,但是debug起來還是比較困難的,因為默認(rèn)每次只會進(jìn)入一個線程,這樣有些問題是發(fā)現(xiàn)不了的,其實IDEA也是支持進(jìn)入每個線程來debug的,本文給大家介紹了IDEA如何對多線程進(jìn)行debug的示例,需要的朋友可以參考下
    2024-05-05
  • Java自定義線程池的實現(xiàn)示例

    Java自定義線程池的實現(xiàn)示例

    本文主要介紹了Java自定義線程池的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Java的訪問修飾符與變量的作用域講解

    Java的訪問修飾符與變量的作用域講解

    這篇文章主要介紹了Java的訪問修飾符與變量的作用域講解,是Java入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-09-09

最新評論

互助| 民县| 习水县| 金堂县| 连城县| 海淀区| 聊城市| 武宣县| 洛隆县| 三门峡市| 鄢陵县| 鹿泉市| 苍山县| 郸城县| 平度市| 和平县| 嘉善县| 禄劝| 陆良县| 股票| 龙口市| 宾川县| 日土县| 梅河口市| 辽阳市| 社旗县| 阜南县| 九寨沟县| 洪湖市| 九龙城区| 临汾市| 阜宁县| 丰镇市| 临桂县| 凯里市| 德昌县| 西峡县| 北海市| 雷波县| 随州市| 扎兰屯市|