在默認情況下,一次性發過去的多條sql是不合法的。
想要讓mysql一次執行多條sql語句,必須進行手動設置。
讓mysql驅動開啟批量執行sql的開關。
怎么開啟呢?在拼裝mysql鏈接的url時,為其加上allowMultiQueries參數,設置為true,如下:
jdbc.jdbcUrl=jdbc:mysql://127.0.0.1:3306/database?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true
在每條sql語句后面插入分隔符“;”
<if test="list!=null">
<foreach close="" collection="list" index="index" item="item" open="" separator=";"> update items set name = #{item.name,jdbcType=VARCHAR}, price = #{item.price,jdbcType=VARCHAR}, pic = #{item.pic,jdbcType=VARCHAR}, detail = #{item.detail,jdbcType=LONGVARCHAR}, createtime = #{item.createtime,jdbcType=VARCHAR} where id = #{item.id,jdbcType=INTEGER} </foreach>
</if>