Mybatis+MySql 一个标签中一次执行多条SQL语句

2018 年 7 月 13 日 1 条评论 4.26k 次阅读 1 人点赞

有个常见的场景:删除用户的时候需要先删除用户的外键关联数据,否则会触发规则报错。
MySql默认是不支持这种骚操作的,但是并不代表不能实现,只需要在jdbc的配置文件中稍做配置:

解决办法不外乎有三个:1、多条sql分批执行;2、存储过程或函数调用;3、sql批量执行。

今天我要说的是MyBatis中如何一次执行多条语句(使用mysql数据库)。

1、修改数据库连接参数加上allowMultiQueries=true,如:

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/airipo?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true
username=root
password=1234

其中,allowMultiQueries=true这个配置是关键,必须写

2、然后在映射文件中的标签下将多条sql用;隔开即可,示例代码:

<delte id="deleteUserById" parameterType="String">
    delete from sec_user_role where userId=#{id};
    delete from sec_user where id=#{id};
</delete>

仅此而已

雷雷

这个人太懒什么东西都没留下

文章评论(1)

  • 张三

    mysql需要配置什么?

    2019 年 8 月 22 日
  • (Spamcheck Enabled)