Rumah > Java > javaTutorial > teks badan

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

WBOY
Lepaskan: 2023-05-12 20:52:18
ke hadapan
1360 orang telah melayarinya

    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);
    Salin selepas log masuk

    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>
    Salin selepas log masuk

    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集合中取出来)...)
    Salin selepas log masuk
        int cnt = mybatisBatchUtils.batchUpdateOrInsert(addList, UiConfigDetailMapper.class,
                                (item, uiConfigDetailMapper) -> uiConfigDetailMapper.insertSelective(item));
    Salin selepas log masuk

    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!

    Label berkaitan:
    sumber:yisu.com
    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan