1. 程式人生 > 其它 >mybatis一次執行多條SQL語句報錯

mybatis一次執行多條SQL語句報錯

如果這樣來寫一個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 <update
id="dropTable3" parameterType="map"> 11 drop table if exists ${tableName} 12 </update> 13 </mapper>