Mybaties批量操作

1、批量插入

 <!--批量操作-插入--><!-- 相當于INSERT INTO t_goods (c1,c2,c3) VALUES (a1,a2,a3),(b1,b2,b3),(d1,d2,d3),...--><insert id="batchInsert" parameterType="java.util.List">INSERT INTO t_goods (title,sub_title,original_cost,current_price,discount,is_free_delivery,category_id) VALUES<foreach collection="list" item="item" index="index" separator=",">(#{item.title},#{item.subTitle},#{item.originalCost},#{item.currentPrice},#{item.discount},#{item.isFreeDelivery},#{item.categoryId})</foreach></insert>

測試

 @Testpublic void batchInsertTest(){SqlSession sqlSession = null;try {sqlSession = MyBatisUtil.getSqlSession();PageHelper.startPage(1, 6);GoodsMapper mapper = sqlSession.getMapper(GoodsMapper.class);List<Goods> goodsList = new ArrayList<Goods>();for (int i = 0; i < 10; i++) {Goods goods = new Goods();goods.setTitle("測試產品"+i);goods.setSubTitle("測試產品副標題"+i);goods.setDiscount(0.88f);goods.setIsFreeDelivery(1);goods.setOriginalCost(155f);goods.setCategoryId(40);goods.setCurrentPrice(888f);goodsList.add(goods);}int insert = mapper.batchInsert(goodsList);if (insert == goodsList.size()) {sqlSession.commit();System.out.println("插入數據成功");}else{System.out.println("插入數據失敗");sqlSession.rollback();}} catch (Exception e) {System.out.println("插入數據失敗");sqlSession.rollback();throw new RuntimeException(e);} finally {sqlSession.close();}}

1、批量插入數據無法獲得插入數據的id,若后續需要使用該id繼續操作,需要想別的辦法
2、若批量插入的數據太多,生成的批量插入SQL過長,可能會被服務器拒絕,可以改為分成幾次來完成

2、批量刪除

<!--批量操作-刪除-->
<!--相當于DELETE FROM t_goods WHERE goods_id IN (a1,a2,a3,a4,a5...)
-->
<delete id="batchDelete" parameterType="java.util.List">DELETE FROM t_goods WHERE goods_id IN<foreach collection="list" item="item" index="index" separator=","  open="(" close=")">#{item}</foreach>
</delete>

測試:

@Testpublic void batchDeleteTest(){SqlSession sqlSession = null;try {sqlSession=MyBatisUtil.getSqlSession();GoodsMapper mapper = sqlSession.getMapper(GoodsMapper.class);List<Integer> parameterList = Arrays.asList(2600, 2601,2602);int delete = mapper.batchDelete(parameterList);if (delete == parameterList.size()) {System.out.println("刪除數據成功");sqlSession.commit();}else{System.out.println("刪除數據失敗");sqlSession.rollback();}} catch (Exception e) {System.out.println("刪除數據失敗");sqlSession.rollback();throw new RuntimeException(e);} finally {sqlSession.close();}}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/72361.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/72361.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/72361.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

向量庫集成指南

文章目錄 向量庫集成指南Chroma集成Pinecone集成MiLvus集成向量庫集成指南 向量庫是一種索引和存儲向量嵌入以實現高效管理和快速檢索的數據庫。與單獨的向量索引不同,像Pinecone這樣的向量數據庫提供了額外的功能,例如,索引管理、數據管理、元數據存儲和過濾,以及水平擴展…

軟件測試之使用Requests庫進行接口測試

文章目錄 前言Requests庫是什么為什么要用Requests庫進行接口測試安裝Requests庫Requests庫使用發送GET請求發送帶查詢參數的GET請求響應內容格式添加請求頭信息發送一個POST請求查看響應內容斷言請求超時Cookie與Session模擬登錄 參考目錄 前言 閱讀本文前請注意最后編輯時間…

AttributeError: module ‘backend_interagg‘ has no attribute ‘FigureCanvas‘

AttributeError: module backend_interagg has no attribute FigureCanvas 這個錯誤通常是由于 Matplotlib 的后端配置問題引起的。具體來說&#xff0c;Matplotlib 在嘗試加載某個后端時&#xff0c;發現該后端模塊中缺少必要的屬性&#xff08;如 FigureCanvas&#xff09;&a…

iWebOffice2015 中間件如何在Chrome107及之后的高版本中加載

iWebOffice2015是江西金格科技有限公司開發的一款智能文檔中間件&#xff0c;和一些知名OA及ERP公司曾經達成OEM合作&#xff0c;所以用戶一度比較多&#xff0c;但不幸的是Chromium內核瀏覽器在2022年10月份發布的107版本中永久取消了對PPAPI插件的加載支持&#xff0c;導致使…

【MyBatis Plus JSON 處理器簡化數據庫操作】

文章目錄 什么是 MyBatis-Plus JSON 處理器&#xff1f;開始使用 MyBatis-Plus JSON 處理器步驟 1: 創建實體類步驟 2: 創建 Mapper 接口步驟 3: 查詢 JSON 數據步驟 4: 插入和更新 JSON 數據 什么是 MyBatis-Plus JSON 處理器&#xff1f; MyBatis-Plus 是一個基于 MyBatis 的…

OpnenHarmony 開源鴻蒙北向開發——1.開發環境搭建(DevEco Studio 5.03)

我這邊是基于window下對OpenHarmony開源鴻蒙進行北向開發。 一、安裝DevEco Studio 1、下載 下載中心 | 華為開發者聯盟-HarmonyOS開發者官網&#xff0c;共建鴻蒙生態 2、安裝 下載完成之后進行解壓 雙擊進行安裝 按照我的步驟進行 選擇安裝目錄&#xff0c;全部配置完成后…

深入 Python 網絡爬蟲開發:從入門到實戰

一、為什么需要爬蟲&#xff1f; 在數據驅動的時代&#xff0c;網絡爬蟲是獲取公開數據的重要工具。它可以幫助我們&#xff1a; 監控電商價格變化抓取學術文獻構建數據分析樣本自動化信息收集 二、基礎環境搭建 1. 核心庫安裝 pip install requests beautifulsoup4 lxml …

linux(ubuntu)中Conda、CUDA安裝Xinference報錯ERROR: Failed to build (llama-cpp-python)

文章目錄 一、常規辦法二、繼續三、繼續四、缺少 libgomp庫&#xff08;最終解決&#xff09;在 Conda 環境中安裝 libgomp 如果符合標題情況 執行的&#xff1a; pip install "xinference[all]"大概率是最終解決的情況。 一、常規辦法 llama-cpp-python 依賴 CMak…

OpenGL中繪制圖形元素的實現(使用visual studio(C++)繪制一個矩形)

目標&#xff1a;使用OpenGL提供的函數繪制矩形、線段、三角形等基本圖形元素 所需效果 實驗步驟 1、配置OpenGL&#xff08;詳情參見OpenGL的配置&#xff09; 2、頭文件引入 #include <gl/glut.h> 3、編寫方法體 1>矩形實現 //繪制矩形 void DisplayRectangl…

庖丁解java(一篇文章學java)

(大家不用收藏這篇文章,因為這篇文章會經常更新,也就是刪除后重發) 一篇文章學java,這是我滴一個執念... 當然,真一篇文章就寫完java基礎,java架構,java業務實現,java業務擴展,根本不可能.所以,這篇文章,就是一個索引,索什么呢? 請看下文... 關于決定開始寫博文的介紹 …

面試高頻#LeetCode#Hot100-字母異位詞分組

題號鏈接 49. 字母異位詞分組 - 力扣&#xff08;LeetCode&#xff09; 1首先定義map集合一個String對應一個String[]集合&#xff0c;遍歷字符串數組 2對其先進行拆分&#xff0c;拆分為字符數組&#xff0c;再進行排序&#xff0c;再轉為字符串 3如果key值沒有就創建一個字符…

esProc SPL vs DuckDB:多源數據處理誰更勝一籌?

DuckDB 和 esProc SPL 都支持多樣數據源處理&#xff0c;這里比較一下兩者的差異。 支持的數據源種類 DuckDB 支持的數據源類型覆蓋了常見的文件格式&#xff08;如 CSV、Parquet、JSON、Excel&#xff09;、云存儲&#xff08;如 AWS S3、Azure Blob Storage&#xff09;以及…

超精密工件小孔幾何尺寸測量:自動化解決方案

下載鏈接&#xff1a;&#xff08;最新版本&#xff09;超精密工件小孔幾何尺寸測量&#xff1a;自動化解決方案python腳本代碼&#xff0c;可直接運行&#xff0c;內包含測試數據&#xff0c;親測好用資源-CSDN文庫 在現代制造業中&#xff0c;超精密工件的質量控制至關重要&a…

重生之我在學Vue--第11天 Vue 3 高級特性

重生之我在學Vue–第11天 Vue 3 高級特性 文章目錄 重生之我在學Vue--第11天 Vue 3 高級特性前言一、Teleport&#xff1a;打破組件層級的瞬移術1. 什么是Teleport&#xff1f;2. 核心用法3. 實戰技巧 二、Suspense&#xff1a;異步組件的優雅過渡1. 為什么需要Suspense&#x…

MCU的工作原理:嵌入式系統的控制核心

MCU的工作原理可以概括為以下幾個步驟&#xff1a; 1. 初始化 上電后&#xff0c;MCU從Flash存儲器中加載程序代碼&#xff0c;并初始化外設和寄存器。 2. 任務執行 根據程序邏輯&#xff0c;MCU執行數據處理、外設控制和通信等任務。通過中斷系統實時響應外部事件。 3. 低…

游戲引擎學習第158天

回顧和今天的計劃 我們在這里會實時編碼一個完整的游戲&#xff0c;沒有使用引擎或庫&#xff0c;一切都由我們自己做所有的編程工作&#xff0c;游戲中的每一部分&#xff0c;無論需要做什么&#xff0c;我們都親自實現&#xff0c;并展示如何完成這些任務。今天&#xff0c;…

k8s基礎架構介紹

k8s基礎架構介紹 k8s 是對容器進行編排的一種工具。通過k8s可以實現對容器的編排、部署、更新等 學習k8s之前&#xff0c;先了解相關的一些使用和配置k8s的一些工具。 k8s的常用工具 在 kubernetes 中&#xff0c;主要有三個日常使用的工具&#xff0c;這些工具使用 kube 前…

興達易控Profinet 轉 ModbusTCP跨網段通信模塊

Profinet 轉 ModbusTCP/跨網段通信模塊 Profinet轉ModbusTCP/跨網段通信模塊&#xff0c;作為現代工業自動化系統中不可或缺的重要組件&#xff0c;正日益受到廣泛關注和應用。 這種模塊的核心功能是將Profinet網絡協議轉換為Modbus TCP協議&#xff0c;實現不同網絡之間的無縫…

創新技術引領軟件供應鏈安全,助力數字中國建設

編者按 隨著數字化轉型的加速&#xff0c;針對軟件供應鏈的攻擊事件呈快速增長態勢&#xff0c;目前已成為網絡空間安全的焦點。如何將安全嵌入到軟件開發到運營的全流程&#xff0c;實現防護技術的自動化、一體化、智能化&#xff0c;成為技術領域追逐的熱點。 懸鏡安全作為…

某大廠自動化工程師面試題

一些大廠的自動化工程師面試題匯總: 基礎知識類 請解釋什么是PLC(可編程邏輯控制器)?什么是PID控制?它在自動化系統中的作用是什么?請描述一下工業4.0的基本概念。編程與控制系統類 你熟悉哪些PLC編程語言?請舉例說明。如何在SCADA系統中實現數據采集和監控?請解釋一下…