Rumah  >  Artikel  >  Java  >  Bagaimanakah springboot mengintegrasikan mybatis untuk melaksanakan pemprosesan batch kemas kini pangkalan data?

Bagaimanakah springboot mengintegrasikan mybatis untuk melaksanakan pemprosesan batch kemas kini pangkalan data?

WBOY
WBOYke hadapan
2023-05-12 20:52:181359semak imbas

    springboot menyepadukan mybatis untuk melaksanakan pemprosesan batch kemas kini pangkalan data

    1 Tulis kaedah dalam antara muka pemeta

    rreee

    2 .xml Tulis pernyataan kemas kini sql yang sepadan dalam

    /**
     * 修改book表中的销量和库存
     * 要使用批处理
     */
    Integer batchBookCountStork(@Param("bookList") List<CartItem> bookList);

    3 Aliran pernyataan sql fail konfigurasi ini adalah seperti berikut:

    <update id="batchBookCountStork" parameterType="java.util.List">
        UPDATE t_book
        <set>
            <foreach collection="bookList" item="book" index="index" open="`sales` = CASE `book_id`" close="END,">
                WHEN #{book.bookId} THEN sales+#{book.count}
            </foreach>
            <foreach collection="bookList" item="book" index="index" open="`stock` = CASE `book_id`" close="END,">
                WHEN #{book.bookId} THEN stock-#{book.count}
            </foreach>
        </set>
        <where>
            <foreach collection="bookList" item="book" index="index" open="`book_id` IN(" close=")" separator=",">
                #{book.bookId}
            </foreach>
        </where>
      </update>

    4 🎜>Kemas kini jadual Data adalah berdasarkan nilai id yang dilalui melalui koleksi, tetapkan nama medan untuk dikemas kini dan ikat nilai medan untuk dikemas kini dengan id kunci utama jadual Apabila id kunci utama adalah konsisten dengan nilai id dikeluarkan daripada senarai, biarkan ini Nama medan dikemas kini, ambil nilai selepas itu

    Pangkalan data kemas kini kumpulan Mybatis MybatisBatchUtils batchInsertupdate but spring

    MybatisBatchUtils

    update t_book(表名)
    set sales(这个是数据库的销量字段名) = case book_id(这个是数据库的id字段名)
        when bookid(从list集合中取出来的) then sales+(从集合中取出的数据)
        ...(这里可以一直进行拼接)
      end,
        stock(这个是数据库的库存字段名) = CASE book_id(这个是数据库的id字段名)
        when bookid(从list集合中取出来的) then stock-(从集合中取出数据)
        ...(这里可以一直进行拼接)
      end,
    where `book_id`(这个是数据库的id字段名) IN(bookid(从list集合中取出来),bookid(从list集合中取出来)...)
        int cnt = mybatisBatchUtils.batchUpdateOrInsert(addList, UiConfigDetailMapper.class,
                                (item, uiConfigDetailMapper) -> uiConfigDetailMapper.insertSelective(item));

    Atas ialah kandungan terperinci Bagaimanakah springboot mengintegrasikan mybatis untuk melaksanakan pemprosesan batch kemas kini pangkalan data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam