mybatis mysql 批量_mybatis 执行多条sql,批量执行

本文介绍了在MyBatis中如何在MySQL环境下一次执行多条SQL语句,以实现用户删除时先删除其外键关联数据。通过设置数据库连接参数allowMultiQueries=true,可以直接编写多条SQL语句并用分号隔开,或者使用存储过程或函数,甚至批量执行。示例中展示了如何在映射类中实现用户和角色权限的删除操作。
摘要由CSDN通过智能技术生成

有个常见的场景:删除用户的时候需要先删除用户的外键关联数据,否则会触发规则报错。

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

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

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

hikariConfig.security.jdbcUrl=jdbc:mysql://xx.xx.xx:3306/xxxxx?characterEncoding=utf-8&autoReconnect=true&failOverReadOnly=false&allowMultiQueries=true

2、直接写多条语句,用“;”隔开即可

delete from sec_user_role where userId=#{id};

delete from sec_user where id=#{id};

映射类:

void updateRolePrivilege(@Param(value = "roleId")String roleId, @Param(value = "priIds")List priIds);

delete from role_privilege where role_id = #{roleId};

insert into role_privilege (role_id, priv_id) values

(#{roleId},#{item})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值