mybatis中执行多条sql语句的方式

一下以mysql 和Oracle为例:

mysql 中修改数据库连接 添加&allowMultiQueries=true  多条sql 语句用; 分割即可

url: jdbc:mysql://localhost:3306/webdb?useSSL=false&useUnicode=true&characterEncoding=utf-8&autoReconnect=true&serverTimezone=Asia/Shanghai&allowMultiQueries=true

例如:

 <delete id="clearAlarmInfo" parameterType="java.util.HashMap">
      delete from t_b_alarm_info where id =1;
      delete from t_alarm_speed where id=2;
</delete> 

 

oracle中用 begin   end 实现多条语句的执行 例如:

        <foreach collection="list" open="begin" close=";end;" separator=";" item="item">
            MERGE INTO T_REL_ALARM_USER T1
            using (select #{userId} AS user_id,#{item} AS ALARM_TYPE FROM dual ) T2
            on ( T1.user_id=T2.user_id and T1.alarm_type= T2.alarm_type)
            WHEN MATCHED THEN
            UPDATE SET insert_time=SYSDATE
            WHEN NOT MATCHED THEN
            INSERT (USER_ID,ALARM_TYPE) VALUES (#{userId},#{item})
        </foreach>

注意 foreach参数: open="begin" close=";end;" separator=";" 是关键

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值