您好,登錄后才能下訂單哦!
本篇內容主要講解“Mybatis執行多條語句/批量更新的方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Mybatis執行多條語句/批量更新的方法是什么”吧!
通常用在刪除主表信息同時刪除子表信息。
如果利用多次Dao進行執行sql,程序就寫起來麻煩并且閱讀難度會提升。
(刪除income表中的信息,同時刪除子表income_detail表中的相關信息)
delete from income_detail where income_id=#{id}; delete from income where id=#{id};
或者是批量更新,比如利用foreach批量update多條數據。
<update id="update"> <foreach collection="xxList" item="item" index="index" open="" close="" separator=";"> update t_xxx <set> xxx = #{item.xxx} </set> where id = #{item.id} </foreach> </update>
這些語句的類似點在于都是在mybatis中帶有分號的多條sql。
而直接執行又會報錯,所以我們需要在jdbc連接中加上allowMultiQueries參數,設置為true。
<property name="url" value="jdbc:mysql://localhost:3306/amoeba?characterEncoding=UTF-8&allowMultiQueries=true"/>
jdbc.url=jdbc:mysql://localhost:3306/amoeba?characterEncoding=UTF-8&allowMultiQueries=true
有個常見的場景:刪除用戶的時候需要先刪除用戶的外鍵關聯數據,否則會觸發規則報錯。
1、多條sql分批執行
2、存儲過程或函數調用
3、sql批量執行
今天我要說的是MyBatis中如何一次執行多條語句(使用mysql數據庫)。
1、修改數據庫連接參數加上allowMultiQueries=true,如:
hikariConfig.security.jdbcUrl=jdbc:mysql://xx.xx.xx:3306/xxxxx?characterEncoding=utf-8&autoReconnect=true&failOverReadOnly=false&allowMultiQueries=true
2、直接寫多條語句,用“;”隔開即可
<delete id="deleteUserById" parameterType="String"> delete from sec_user_role where userId=#{id}; delete from sec_user where id=#{id}; </delete>
到此,相信大家對“Mybatis執行多條語句/批量更新的方法是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。