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

  • Post author:
  • Post category:其他


一下以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=”;” 是关键



版权声明:本文为u014282804原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。