1. 程式人生 > >MyBatis一次執行多條SQL語句

MyBatis一次執行多條SQL語句

有個常見的場景:刪除使用者的時候需要先刪除使用者的外來鍵關聯資料,否則會觸發規則報錯。

解決辦法不外乎有三個: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執行SQL語句

有個常見的場景:刪除使用者的時候需要先刪除使用者的外來鍵關聯資料,否則會觸發規則報錯。 解決辦法不外乎有三個:1、多條sql分批執行;2、儲存過程或函式呼叫;3、sql批量執行。 今天我要說的是MyBatis中如何一次執行多條語句(使用mysql資料庫)。 1、修改資料庫連線引數加上allowMultiQu

MyBatis 執行SQL語句

在實際工作會遇到什麼情況下,需要在MyBatis中一次執行多條語句,那應該怎麼處理呢?(此處使用MySql資料庫) 1、修改資料庫連線引數加上allowMultiQueries=true,如:

在Oracle中執行sql語句,結束符很重要

有時我們需要一次性執行多條sql語句,而用來更新的sql是根據實際情況用程式碼拼出來的解決方案是把sql拼成下面這種形式:begin update TB_VG set seq = 1, vessel_id = 'Jin14', vessel_type = 'TRACK' w

mybatis 執行SQL

此處僅描述問題處理方法,關於mysql、mybatis的內容不在此贅述。因為專案需要,需要在mybatis同個標籤中執行多條sql語句。如下:Xml程式碼  <insert id="insertUser" parameterType="com.test.model.User">          

Java執行SQL語句

startBatch()方法執行一組SQL語句。首先建立執行SQL語句的Statement物件,通過Statement類的addBatch方法將待執行SQL語句新增到執行緩衝區中,再呼叫executeBatch方法將執行緩衝區中的SQL語句全部執行,返回一個整型陣列,如果陣列元素的值大於等於0,則表示該語

如何在Oracle中執行sql語句,結束符很重要

有時我們需要一次性執行多條sql語句,而用來更新的sql是根據實際情況用程式碼拼出來的解決方案是把sql拼成下面這種形式:begin  update TB_VG set seq = 1, vessel_id = 'Jin14', vessel_type = 'TRACK' where batch_number

mybatis 允許一次性執行sql語句

新增allowMultiQueries=true jdbcUrl=jdbc:mysql://127.0.0.1:3306/database?useUnicode=true&characterEncoding=utf8&allowMultiQ

mysql 的 佔位符使用 以及執行sql語句

佔位符的使用: drop PROCEDURE if EXISTS test12; -- 使用drop 來刪除儲存過程或者表 create PROCEDURE test12() -- 建立儲存過程 命名為test12 BEGIN set @tab

Java 執行sql

//一次執行多條SQL,如果傳來的SQL如果有一條不成功將顯示失敗 //Arraylist 為已封裝的SQL語句  //sMsg 為資訊提示。當執行出問題時,輸出相應的資訊。(如:輸入類名方法名,出錯時可以看到出問題的方法名稱) public boolean exeManySQL(ArrayList arr

mybatis 通用mapper 執行sql語句

 實際上,我們經常會遇到這樣的需求,那就是利用Mybatis批量更新或者批量插入,但是,實際上即使Mybatis完美支援你的sql,你也得看看你說操作的資料庫是否支援,最近就遇到這樣的一個坑。 解決方案       mysql的批量更新是要我們主動去設定的, 就是

C#(.net)中的連線資料庫執行sql語句(兩種方法)

第一種方法: string str="server=.;uid=sa;pwd=111111;database=text_db";//連線字串 SqlConnection SCON = null;//連線物件 SqlCommand SCom=new SqlCommand();/

Mybatis+MySql 一個標籤中執行sql語句

版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/cxfly957/article/details/77896590 MySql預設是不支援這種騷操作的,但是並不代表不能實現,只需要在jdbc的配置檔案中

如何在mybatis中一個insert,delete,update中執行SQL語句

一般我們會在applicationContect中這麼配置: <!-- 1. 資料來源 : DriverManagerDataSource --> <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSo

mysql+mybatismybatis一個標籤中,執行sql語句

然後在mybatis對映檔案中的標籤中,一般不能執行多條sql,如下: <insert id="addUser" parameterType="User" > insert into t_users (name,password,phone) values (#{na

MyBatis執行SQL語句

最近遇到需要在MyBatis同一個標籤寫入多條SQL語句的問題,可以網上的答案一直不成功,後來才發現其實不同人有不同寫法,解答如下: 大部分人說在JDBC連線後面加上allowMulQueries=true就可以了,可以我是不成功了,後來才發現,如果你是將JD

在oracle中執行語句

工作中需要一次執行多條語句,本來想直接使用sql拼接成一個字串進行批處理,原sql如下: String sql = ""; for(int i=0; i<deviceInfo.getDevice_ip().length; i++){

mysql基礎-- 請求執行SQL語句

最近做一個資料庫初始化工具的時候發現了這個問題,就是在一個Statement中執行一條SQL語句的時候可以正確執行,如果同時執行多條,就會報SQL語法錯誤,傷透了腦筋。 經過網上查詢,發現有兩種解決辦法: 1、最簡單的辦法,在MySQL的連線字串中設定allowMulti

使用jmeter執行sql語句

多個 true targe csdn allow 知識 word sta lib 註意2個地方 1、 【JDBC Connection Configuration】 在配置DataBase URL的時候,加上allowMultiQueries=true參數如: jdbc:

sql效能優化第二篇之mybatis如何能夠執行sql

在第一篇基礎上,資料庫能夠成功執行語句,但是放到Java程式碼中會報錯有木有。 原來,mybatis在我們使用連結連線資料庫時,需要我們手動在連線上加上程式碼: &allowMultiQueries=true //允許執行多條sql 寫全就是:spring.datasour

懶人的python——執行linux命令

今天在公司搞了半天EE2I,一直在敲相同的命令累死了。每次執行ee2i.sh temp命令後,都要到cd到某個目錄下執行下一個shell指令碼。做完一次後又要刪除臨時檔案。總之,重複工作很多,我的指甲都敲累了。所以晚上回到家就寫了個類似的python指令碼來自動化執行這些討厭