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

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

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

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

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

主要有兩點(diǎn)問題

我的List集合是利用的另外一個(gè)語句查詢出來的,傳入?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>

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

其實(shí)這里如果我們是要返回指定類型的集合直接寫java.lang.Integer(int類型)java.lang.String(字符串)等等就可以了,當(dāng)然也可以自定義一個(gè)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>

上面是通過一個(gè)id查詢出List集合,下面是將查到的這個(gè)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>

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

使用foreach 語句循環(huán)集合中的數(shù)據(jù),item就是循環(huán)到的數(shù)據(jù),如果你是一個(gè)復(fù)雜類型的數(shù)據(jù)做批量插入的話可以使用item.屬性名 的方式獲取對應(yīng)值,類似于java的foreach循環(huán)語句,某些時(shí)候可能傳入的是Array數(shù)組,畢竟都說Array比List效率高,這種時(shí)候和上述方法類似,也是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 為遍歷的每一項(xiàng),代表著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é)

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

相關(guān)文章

  • spring事務(wù)異?;貪L實(shí)例解析

    spring事務(wù)異?;貪L實(shí)例解析

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

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

    Trie也叫做字典樹、前綴樹(Prefix Tree)、單詞查找樹,特點(diǎn):查找效率高,消耗內(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衍生注解,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Java利用for循環(huán)輸出空心菱形的實(shí)例代碼

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

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

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

    這篇文章主要為大家詳細(xì)介紹了Java布隆過濾器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    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)程掛起問題及解決,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • SpringSecurity6.x多種登錄方式配置小結(jié)

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

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

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

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

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

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

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

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

最新評論

芦山县| 桃园县| 桃源县| 江阴市| 青神县| 大足县| 慈利县| 铁岭县| 呼和浩特市| 台东市| 梅河口市| 靖西县| 刚察县| 手游| 平安县| 平舆县| 德安县| 沙河市| 阳西县| 南丹县| 黑河市| 剑河县| 泰宁县| 临潭县| 达州市| 文安县| 永兴县| 余干县| 富阳市| 潼关县| 玛纳斯县| 商水县| 成武县| 宁国市| 田林县| 锡林浩特市| 松潘县| 温泉县| 保靖县| 留坝县| 武安市|