千家信息网

springboot怎样开启声明式事务

发表于:2024-10-22 作者:千家信息网编辑
千家信息网最后更新 2024年10月22日,这篇文章给大家介绍springboot怎样开启声明式事务,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。springboot开启事务很简单,只需要一个注解@Transactiona
千家信息网最后更新 2024年10月22日springboot怎样开启声明式事务

这篇文章给大家介绍springboot怎样开启声明式事务,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

springboot开启事务很简单,只需要一个注解@Transactional 就可以了。因为在springboot中已经默认对jpa、jdbc、mybatis开启了事事务,引入它们依赖的时候,事物就默认开启。当然,如果你需要用其他的orm,比如beatlsql,就需要自己配置相关的事物管理器。

准备阶段

以上一篇文章的代码为例子,即springboot整合mybatis,上一篇文章是基于注解来实现mybatis的数据访问层,这篇文章基于xml的来实现,并开启声明式事务。

环境依赖

在pom文件中引入mybatis启动依赖:

            org.mybatis.spring.boot            mybatis-spring-boot-starter            1.3.0

引入mysql 依赖

            mysql            mysql-connector-java            runtime                            com.alibaba            druid            1.0.29        

初始化数据库脚本

-- create table `account`# DROP TABLE `account` IF EXISTSCREATE TABLE `account` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `name` varchar(20) NOT NULL,  `money` double DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;INSERT INTO `account` VALUES ('1', 'aaa', '1000');INSERT INTO `account` VALUES ('2', 'bbb', '1000');INSERT INTO `account` VALUES ('3', 'ccc', '1000');

配置数据源

spring.datasource.url=jdbc:mysql://localhost:3306/testspring.datasource.username=rootspring.datasource.password=123456spring.datasource.driver-class-name=com.mysql.jdbc.Drivermybatis.mapper-locations=classpath*:mybatis/*Mapper.xmlmybatis.type-aliases-package=com.forezp.entity

通过配置mybatis.mapper-locations来指明mapper的xml文件存放位置,我是放在resources/mybatis文件下的。mybatis.type-aliases-package来指明和数据库映射的实体的所在包。

经过以上步骤,springboot就可以通过mybatis访问数据库来。

创建实体类

public class Account {    private int id ;    private String name ;    private double money;    getter..    setter..  }

数据访问dao 层

接口:

public interface AccountMapper2 {   int update( @Param("money") double money, @Param("id") int  id);}

mapper:

            UPDATE account set money=#{money} WHERE id=#{id}    

service层

@Servicepublic class AccountService2 {    @Autowired    AccountMapper2 accountMapper2;    @Transactional    public void transfer() throws RuntimeException{        accountMapper2.update(90,1);//用户1减10块 用户2加10块        int i=1/0;        accountMapper2.update(110,2);    }}

@Transactional,声明事务,并设计一个转账方法,用户1减10块,用户2加10块。在用户1减10 ,之后,抛出异常,即用户2加10块钱不能执行,当加注解@Transactional之后,两个人的钱都没有增减。当不加@Transactional,用户1减了10,用户2没有增加,即没有操作用户2 的数据。可见@Transactional注解开启了事物。

springboot 开启事物很简单,只需要加一行注解就可以了,前提你用的是jdbctemplate, jpa, mybatis,这种常见的orm。

关于springboot怎样开启声明式事务就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

用户 数据 事务 注解 篇文章 事物 数据库 文件 配置 内容 实体 更多 上一 帮助 不错 一行 两个 代码 位置 例子 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 高速服务器能去对面么 感谢软件开发团队的发言 内容分发网络网络技术点 某某支行全面开展网络安全宣传 数据库如何更改存储 道通科技算互联网公司吗 服务器配置错误怎么解决 俄罗斯 网络安全体制 义乌招软件开发 何为网络安全小知识 数据库设计提交什么文件 金融机构网络安全责任书 lT软件开发工作是不是很忙 数据库连接密码加密 海康 流存储管理服务器 南京在哪里学软件开发 北京金融软件开发公司有哪些 农行北京软件开发中心上交所 网络安全上市公司最强的 济南网络安全研究院 杭州火牛网络技术有限公司 现代软件开发工作室布局 戴尔服务器硬件管理 北京电脑软件开发需要多少钱 福建工程审批管控软件开发平台 恒生指数和科技互联网指数 软件开发甲方要求 数据库原理及应用李楠楠习题答案 一般公司软件开发过程 怎么给服务器增加管理员
0