mybatis一次執行多條SQL語句報錯
阿新 • • 發佈:2021-11-22
如果這樣來寫一個mapper
1 <update id="createTable3" parameterType="map"> 2 drop table if exists ${tableName}; 3 CREATE TABLE ${tableName} ( 4 field_1 VARCHAR(255) NOT NULL, 5 field_2 VARCHAR(255) NOT NULL 6 )ENGINE=INNODB DEFAULT CHARSET=utf8; 7 </update>
這一個mapper的update標籤裡有兩條SQL語句,我的本意是如果原表存在,那麼就把原表刪除再新建表。
但是這樣就會丟擲SQL語句語法存在問題,後來瞭解到原因很簡單,同一個標籤一次只可以執行一條SQL語句。
所以要實現這個目的可以再寫一個標籤,把兩條SQL語句分開執行,這個問題應該是存在解決辦法的,目前我只是把SQL語句分開寫,日後看到了好方法再來修改。
程式碼
1 <mapper namespace="com.reliable.dao.CreateMapper"> 2 <update id="createTable3" parameterType="map"> 3 drop table if exists ${tableName}; 4 CREATE TABLE ${tableName} ( 5 field_1 VARCHAR(255) NOT NULL, 6 field_2 VARCHAR(255) NOT NULL 7 )ENGINE=INNODB DEFAULT CHARSET=utf8; 8 </update> 9 <!--如果原表存在則刪除表--> 10 <updateid="dropTable3" parameterType="map"> 11 drop table if exists ${tableName} 12 </update> 13 </mapper>