Mybatis執(zhí)行多條語句/批量更新方式
Mybatis執(zhí)行多條語句/批量更新
Mybatis實現(xiàn)多條語句
通常用在刪除主表信息同時刪除子表信息。
如果利用多次Dao進行執(zhí)行sql,程序就寫起來麻煩并且閱讀難度會提升。
(刪除income表中的信息,同時刪除子表income_detail表中的相關(guān)信息)
delete from income_detail where income_id=#{id};?
delete from income where id=#{id};或者是批量更新,比如利用foreach批量update多條數(shù)據(jù)。
<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。
而直接執(zhí)行又會報錯,所以我們需要在jdbc連接中加上allowMultiQueries參數(shù),設(shè)置為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
Mybatis同時執(zhí)行多條語句
有個常見的場景:刪除用戶的時候需要先刪除用戶的外鍵關(guān)聯(lián)數(shù)據(jù),否則會觸發(fā)規(guī)則報錯。
解決辦法不外乎有三個
- 1、多條sql分批執(zhí)行
- 2、存儲過程或函數(shù)調(diào)用
- 3、sql批量執(zhí)行
今天我要說的是MyBatis中如何一次執(zhí)行多條語句(使用mysql數(shù)據(jù)庫)。
1、修改數(shù)據(jù)庫連接參數(shù)加上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>僅此而已!?。?/p>
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
淺析Java 數(shù)據(jù)結(jié)構(gòu)常用接口與類
本篇文章主要介紹了Java中的數(shù)據(jù)結(jié)構(gòu),Java工具包提供了強大的數(shù)據(jù)結(jié)構(gòu)。需要的朋友可以參考下2017-04-04
MyEclipse8.6首次運行maven項目圖標上沒有小M的標識怎么解決
myeclipse8.6導入maven項目后識別為普通java項目,即項目圖標上沒有小M的標識。這時是無法直接運行的,怎么解決這一問題呢?下面小編給大家?guī)砹私鉀Q方案,需要的朋友參考下吧2016-11-11
Java8新特性O(shè)ptional類處理空值判斷回避空指針異常應(yīng)用
這篇文章主要介紹了Java8新特性O(shè)ptional類處理空值判斷回避空指針異常應(yīng)用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪2022-04-04
Java實現(xiàn)郵箱發(fā)送功能實例(阿里云郵箱推送)
這篇文章主要給大家介紹了關(guān)于Java實現(xiàn)郵箱發(fā)送功能的相關(guān)資料,利用阿里云郵箱推送,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-09-09

