广告
返回顶部
首页 > 资讯 > 后端开发 > Python >MyBatis如何配置多sql脚本执行
  • 251
分享到

MyBatis如何配置多sql脚本执行

MyBatis配置sql多sql脚本执行MyBatis多sql脚本执行 2023-05-13 20:05:38 251人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录mybatis配置多sql脚本执行MyBatis一次执行多条sql,一个标签多个Insert、update、delete总结MyBatis配置多sql脚本执行 在实际开发场景中,

MyBatis配置多sql脚本执行

在实际开发场景中,有时候为了减少代码的冗余,在编写数据执行方法时,希望一个方法同时执行两个sql脚本,顺序执行,不影响业务逻辑。

1、在数据源配置中增加如下配置:allowMultiQueries=true

spring:
  profiles: dev
  datasource:
    #主数据源
    master:
      type: com.alibaba.druid.pool.DruidDataSource
      driver-class-name: com.Mysql.jdbc.Driver
      url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=UTC&allowMultiQueries=true
      username: root
      passWord: 123456

2、多sql语句以分号;相隔

<update id="updateId" parameterType="java.lang.Integer">
        update t_menu set name = #{name} where id = #{id};
        update t_stu set order_no = order_no+1 where id = #{id};
</update>

注意:多条sql语句同时执行,不存在事务,即其中一条sql语句报错不会影响另外一条语句执行。

解决办法:

在service层方法里添加@Transactional注解,添加@Transactional注解后,spring默认抛出未检查unchecked异常(继承自RuntimeException的异常)或者Error才会回滚,换句话说,若只是添加@Transactional注解,对于RuntimeException异常或者Error错误默认会触发事务回滚,对于其他的异常是不会触发异常的,若此时想要其他异常也能触发回滚,需要添加@Transactional的rollbackFor属性值,比如在代码中手动抛出Exception异常

如下:

if (res > 0) {
      // 抛出异常,事物捕抓异常,事物进行回滚
      throw new Exception("无权限审批!");
}

此时加上rollbackFor属性值如下,当出现Exception异常时,可以触发事务回滚。 

@Transactional(rollbackFor = Exception.class)

建议:自定义一个异常处理类,该异常类继承RuntimeException类,在需要抛出异常时,调用该自定义异常类,此时方法执行出现异常,会抛出RuntimeException,在方法头加上@Transactional即可,而不需要添加rollbackFor属性值。

MyBatis一次执行多条sql,一个标签多个Insert、update、delete

再平时的工作、学习中,我们会遇见插入,修改,删除多个表的操作,我们不可能写多条insert标签等,这就需要在一个标签中写多个SQL语句

  <insert id="addPurchase" parameterType="com.zhao.vo.PurchaseVoOne">
        insert into enters_sells_saves.purchase ( amount, price, purchase_time)
        values (#{amount},#{price},#{purchaseTime});
        insert into enters_sells_saves.Goods (goods_name)
        values (#{goodsName});
        insert into enters_sells_saves.supplier (supplier_name)
        values (#{supplierName});
    </insert>

需要我们在数据库连接配置中加入:

allowMultiQueries=true

如:

jdbc:mysql://localhost:3306/enters_sells_saves?useSSL=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT&allowMultiQueries=true

这样就可以在一个标签中使用多个sql语句了

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: MyBatis如何配置多sql脚本执行

本文链接: https://www.lsjlt.com/news/202665.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MyBatis如何配置多sql脚本执行
    目录MyBatis配置多sql脚本执行MyBatis一次执行多条sql,一个标签多个Insert、update、delete总结MyBatis配置多sql脚本执行 在实际开发场景中,...
    99+
    2023-05-13
    MyBatis配置sql 多sql脚本执行 MyBatis多sql脚本执行
  • MyBatis怎么配置多sql脚本执行
    本篇内容介绍了“MyBatis怎么配置多sql脚本执行”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!MyBatis配置多sql脚本执行在实际...
    99+
    2023-07-05
  • 如何在mysql中执行sql脚本
    这篇文章给大家介绍如何在mysql中执行sql脚本,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。第一种方法:在命令行下(未连接数据库)输入 mysql -h localhost ...
    99+
    2023-06-14
  • Powershell连接多服务器执行SQL脚本
    $query = " select @@servername" $csvFilePath = "c:\Scripts...
    99+
    2022-10-18
  • DB2 命令行中如何执行sql脚本
    这期内容当中小编将会给大家带来有关DB2 命令行中如何执行sql脚本,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。DB2 命令行中如何执行sql脚本db2 => connect to dbName ...
    99+
    2023-06-06
  • Linux如何配置开机自启动执行脚本
    这篇文章主要介绍了Linux如何配置开机自启动执行脚本,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。开机要启动的脚本qidong.sh [root@c69-01&n...
    99+
    2023-06-16
  • springboot配置mybatis的sql执行时间超时如何解决
    这篇文章主要介绍“springboot配置mybatis的sql执行时间超时如何解决”,在日常操作中,相信很多人在springboot配置mybatis的sql执行时间超时如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法...
    99+
    2023-07-06
  • 如何在mysql中执行sql脚本文件
    一、sql脚本文件 简介 xxxx.sql这种文件被称为sql脚本文件。sql脚本文件中编写了大量的sql语句。我们执行sql脚本文件的时候,该文件中所有的sql语句会全部执行!批量的执行SQL语句,可以使用sql脚本文件。 上面这个vi...
    99+
    2023-08-19
    sql mysql 数据库
  • MyBatis基本配置和执行的示例分析
    这篇文章主要介绍MyBatis基本配置和执行的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.MyBatis简介MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBat...
    99+
    2023-05-30
    mybatis
  • 解读springboot配置mybatis的sql执行超时时间(mysql)
    目录一、yml全局配置二、java配置类配置总结当某些sql因为不知名原因堵塞时,为了不影响后台服务运行,想要给sql增加执行时间限制,超时后就抛异常,保证后台线程不会因为sql堵塞...
    99+
    2023-01-12
    springboot配置mybatis mybatis sql执行超时时间 mybatis配置sql超时时间
  • php如何设置脚本执行时间
    小编给大家分享一下php如何设置脚本执行时间,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!设置方法:1、php.ini中,查找并设置“max_execution_...
    99+
    2023-06-15
  • 如何设置定时执行php脚本
    这篇文章主要介绍“如何设置定时执行php脚本”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何设置定时执行php脚本”文章能帮助大家解决问题。使用CrontabCrontab是一个类Unix系统下的...
    99+
    2023-07-06
  • python脚本如何执行
    本篇内容主要讲解“python脚本如何执行”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python脚本如何执行”吧!第一种:使用脚本式编程把下面的代码复制到W3Cschool.py文件中:pr...
    99+
    2023-06-27
  • springboot配置mybatis的sql执行超时时间怎么解决
    这篇“springboot配置mybatis的sql执行超时时间怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“spr...
    99+
    2023-07-04
  • SpringBoot如何启动并初始化执行sql脚本
    这篇“SpringBoot如何启动并初始化执行sql脚本”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SpringBoot如...
    99+
    2023-07-05
  • nodejs如何执行bash脚本
    这篇文章给大家分享的是有关nodejs如何执行bash脚本的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言最近在学习bash脚本语法,但是如果对bash语法不是熟手的话,感觉非...
    99+
    2022-10-19
  • linux如何执行perl脚本
    要在Linux上执行Perl脚本,可以按照以下步骤操作:1. 打开终端。2. 在终端中导航到包含Perl脚本的目录。可以使用cd命令...
    99+
    2023-10-18
    linux perl
  • 如何执行mysql命令行脚本
    这篇文章给大家介绍如何执行mysql命令行脚本,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。命令行连接在工作中主要使用命令操作方式,要求熟练编写打开终端,运行命令mysql ...
    99+
    2022-10-18
  • ubuntu如何配置apache运行cgi脚本
    这篇“ubuntu如何配置apache运行cgi脚本”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“ubuntu如何配置apa...
    99+
    2023-07-04
  • Redis中如何执行Lua脚本
    今天就跟大家聊聊有关Redis中如何执行Lua脚本,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。前言Redis从2.6版本开始引入对Lua脚本的支持...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作