1. 程式人生 > >讓MySQL同時執行多條SQL語句的解決辦法

讓MySQL同時執行多條SQL語句的解決辦法

最近做一個MySQL方面的東西發現了這個問題,就是在一個Statement中執行一條SQL語句的時候可以正確執行,如果同時執行多條,就會報SQL語法錯誤,傷透了腦筋。

經過網上查詢,發現有兩種解決辦法:

1、最簡單的辦法:在MySQL的連線字串中設定allowMultiQueries引數置為true。(只有MySQL Connector/J 3.1.1以上版本才支援) 。例如:在jdbc下設定連線字串的時候設定         成如下的形式:

      jdbc:mysql://192.168.3.180/sample?user=root&password=&allowMultiQueries=true就可以執行多條語句了

      在odbc下也是可以設定的,方法如下:

      設定 ODBC -- 配置 --Detials -- Flags 3 -- 鉤上 Allow multiple statements,這樣就可以了。

      結論:第一種方式最簡單。

2、在程式中對SQL語句以分號拆分成多條SQL語句,然後使用Statement的addBatch方法,最後executeBatch就行。

希望對以後遇到此類問題的朋友有所幫助。

相關推薦

MySQL同時執行SQL語句解決辦法

最近做一個MySQL方面的東西發現了這個問題,就是在一個Statement中執行一條SQL語句的時候可以正確執行,如果同時執行多條,就會報SQL語法錯誤,傷透了腦筋。 經過網上查詢,發現有兩種解決辦法: 1、最簡單的辦法:在MySQL的連線字串中設定allowMultiQueries引數置為true。(只

同時執行sql語句

如果需要在一個檔案中,執行多條sql語句,且要保證效率,看下面 con.setAutoCommit(false);//不能讓他自動提交,否則會影響效率 String sql1="insert into test1 values('test03')"; String sql

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

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

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

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

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:

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

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

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

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

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

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

執行SQL語句,實現資料庫事務(不可傳入Sql引數)

          《圖書館維護系統》的時候我負責任務管理模組,由於一些業務有些複雜,所以想用儲存過程,但是賈琳師哥說了一堆儲存過程的不好,讓我用sql語句。好吧,用就用吧,但是吧,大家都知道執行多條sql語句,是需要用到事務的(保持資料一致性),儲存過程中加事務我還是會滴

Jmeter JDBC request執行sql語句

1. 【JDBC Connection Configuration】 在配置DataBase URL的時候,加上allowMultiQueries=true 2. JDBC Request中,sql語句:

MyBatis一次執行SQL語句

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

MyBatis執行SQL語句

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

jmeter 執行sql語句

今天在編寫自動化迴歸指令碼的時候,需要在jmeter的jdbc請求中執行多條sql,在百度裡搜尋了一些文章,按照網上提供的步驟,發現不起作用,後來發現是作者的截圖誤導了,為了讓後面的同學少走彎路,這裡我把關鍵兩步提一下: 1、右鍵【測試計劃】——【新增】——【配置原件】——

Java一次執行SQL語句

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

mybatis 允許一次性執行sql語句

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

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

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

MyBatis 一次執行SQL語句

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

Mysql 動態執行update語句,帶事務的

create procedure  P_CallSql_Tran(IN vi_sql text,in vi_splitchar varchar(20),OUT vo_code VARCHAR(20),out vo_msg text)BEGINDECLARE v_sqltemp

mybatis 通用mapper 執行sql語句

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