直接ip访问网站页面设计介绍

web/2025/10/3 2:02:47/文章来源:
直接ip访问网站,页面设计介绍,佛山网站建设天博,so域名的网站Spring事务-两种开启事务管理的方式 1、前期准备2、基于注解的声明式事务管理3、基于编程式的事务管理4、声明式事务失效的情况 例子#xff1a;假设有一个银行转账的业务#xff0c;其中涉及到从一个账户转钱到另一个账户。在这个业务中#xff0c;我们需要保证要么两个账户… Spring事务-两种开启事务管理的方式 1、前期准备2、基于注解的声明式事务管理3、基于编程式的事务管理4、声明式事务失效的情况 例子假设有一个银行转账的业务其中涉及到从一个账户转钱到另一个账户。在这个业务中我们需要保证要么两个账户都成功更新要么都不更新以避免出现数据不一致的情况。以下是基于注解的声明式事务管理和编程式事务管理的示例 1、前期准备 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-jpa/artifactIdversion2.5.4/version/dependency首先是实体类 Account import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id;Entity TableName(account) public class Account {Idprivate Long id; //银行账户的唯一标识符private String accountNumber; //银行账户的账号用于唯一标识一个账户private double balance; //银行账户的余额表示账户当前的可用资金数量// getters and setters }然后是 AccountRepository import org.springframework.data.jpa.repository.JpaRepository; Mapper public interface AccountRepository extends JpaRepositoryAccount, Long {Account findByAccountNumber(String accountNumber); }然后是控制器类 BankController import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController;RestController public class BankController {Autowiredprivate BankService bankService;PostMapping(/transfer)public String transfer(RequestBody TransferRequest request) {bankService.transfer(request.getFromAccount(), request.getToAccount(), request.getAmount());return Transfer successful;} }接下来是请求体类 TransferRequest public class TransferRequest {private String fromAccount;private String toAccount;private double amount;// getters and setters } 2、基于注解的声明式事务管理 这种方式使用注解来定义事务通过在需要进行事务管理的方法上添加相应的注解来标识事务的边界和属性。 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional;Service public class BankService {Autowiredprivate AccountRepository accountRepository;Transactionalpublic void transfer(String fromAccount, String toAccount, double amount) {Account from accountRepository.findByAccountNumber(fromAccount);Account to accountRepository.findByAccountNumber(toAccount);from.setBalance(from.getBalance() - amount);to.setBalance(to.getBalance() amount);accountRepository.save(from);int i 1/0;accountRepository.save(to);} }报错事务回滚 在上面的示例中Transactional注解被用于标记transfer方法。这表示transfer方法将被Spring框架管理事务。如果该方法执行过程中发生异常Spring会回滚所有的数据库操作以保证数据的一致性。 3、基于编程式的事务管理 编程式事务管理是一种通过编程方式手动控制事务的管理过程。与声明式事务管理相比它不依赖于特定的注解或配置而是在代码中显式地编写事务管理逻辑。在编程式事务管理中开发人员需要手动管理事务的开始、提交、回滚等过程。 编程式事务管理的主要原理包括以下几个方面 事务定义Transaction Definition 在编程式事务管理中首先需要定义事务的属性包括事务的传播行为、隔离级别、超时时间等。这些定义将决定事务的行为。 事务管理器Transaction Manager 事务管理器负责实际管理事务包括事务的开始、提交、回滚等操作。在编程式事务管理中通常需要手动获取事务管理器并调用其方法来管理事务。 事务的控制 在编程式事务管理中开发人员需要显式地控制事务的开始、提交、回滚等过程。这通常通过调用事务管理器的方法来实现如获取事务、提交事务、回滚事务等。 异常处理 在事务管理过程中可能会出现各种异常情况。开发人员需要适当地处理这些异常例如在捕获到异常时执行事务的回滚操作以保证数据的一致性。 事务边界 在编程式事务管理中需要明确定义事务的边界即事务开始和结束的位置。通常事务的边界由业务逻辑决定在业务逻辑的开始处开启事务在结束处提交或回滚事务。 首先需要定义事务管理器 Bean 在 Spring Boot 应用程序的配置类中使用 Bean 注解定义一个名为 transactionManager 的 DataSourceTransactionManager Bean。确保该 Bean 使用了正确的数据源。 import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import javax.sql.DataSource;Configuration public class TransactionConfig {Beanpublic DataSourceTransactionManager transactionManager(DataSource dataSource) {return new DataSourceTransactionManager(dataSource);} }service import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.transaction.TransactionDefinition; import org.springframework.transaction.TransactionStatus; import org.springframework.transaction.support.DefaultTransactionDefinition; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;Service public class BankService {Autowiredprivate AccountRepository accountRepository;Autowiredprivate DataSourceTransactionManager transactionManager;public void transfer(String fromAccount, String toAccount, double amount) {DefaultTransactionDefinition def new DefaultTransactionDefinition();def.setName(transaction-1);def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);TransactionStatus status transactionManager.getTransaction(def);try {Account from accountRepository.findByAccountNumber(fromAccount);Account to accountRepository.findByAccountNumber(toAccount);from.setBalance(from.getBalance() - amount);to.setBalance(to.getBalance() amount);accountRepository.save(from);accountRepository.save(to);transactionManager.commit(status);} catch (Exception e) {transactionManager.rollback(status);throw e;}} }在这个示例中我们直接使用了DataSourceTransactionManager来手动管理事务。我们首先定义了一个事务的定义(DefaultTransactionDefinition)然后使用该定义来开启一个事务。如果执行过程中发生异常我们手动回滚事务如果一切正常则手动提交事务。 4、声明式事务失效的情况 Transactional 应用在非 public 修饰的方法上Transactional 注解属性 propagation 设置错误Transactional 注解属性 rollbackFor 设置错误同一个类中方法调用导致Transactional失效异常被catch捕获导致Transactional失效数据库引擎不支持事务 笔者有空再针对这几种情况进行说明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/85951.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

建立内部网站需要多少钱郑州男科

目录 专栏导读之前的课程1、小球类设计2、挡板类的设计3、砖块类4、砖块与小球的边界碰撞检测5、检测到碰撞,删除砖块,改变运动方向完整版代码总结 专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 …

网站建设的前期准备微博代替wordpress评论框

文章目录 vue3使用响应式数据 v-model导致响应式失效el-form表单无法输入的问题 vue3使用响应式数据 v-model导致响应式失效el-form表单无法输入的问题 参考文章 重构vue2项目时发现的问题,原始项目使用的是Element-ui。 其实vue3可以使用适配的Element-plus 问…

深圳网站建设公司服务平台如何建立小程序商城

题目描述 题目链接:21. 合并两个有序链表 - 力扣(LeetCode) 题目分析 这个算法思路很简单:就是直接找小尾插 定义一个tail和head,对比两个链表结点的val,小的尾插到tail->next,如果一个链表…

网站是怎么搭建的做好网站建设静态化

SQL优化是提升数据库性能的重要手段,以下是SQL优化的详细知识点: 正确使用索引:索引是加速数据检索的关键因素,可以通过合理的索引设计来提升查询性能。例如,在频繁使用的列上创建索引,使用联合索引等。 避…

蓝海国际版网站建设网络组建与安全通知

Vue.js 是一个流行的前端 JavaScript 框架,它提供了一种用于构建用户界面的渐进式方法。Vue 组件的生命周期钩子函数是一些特定的函数,它们在组件不同阶段被自动调用,可以让你在这些阶段执行特定的逻辑。下面是 Vue 组件的生命周期钩子函数以…

广东网站建站系统哪家好wordpress屏蔽广告

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目: 实现strstr函数功能 C 库函数 char *strstr(const char *haystack, const char *nee…

学校网站方案阜阳做网站

v-for​ 我们可以使用 v-for 指令基于一个数组来渲染一个列表。v-for 指令的值需要使用 item in items 形式的特殊语法&#xff0c;其中 items 是源数据的数组&#xff0c;而 item 是迭代项的别名&#xff1a; const items ref([{ message: Foo }, { message: Bar }]) <l…

垂直购物网站建设网站备案进程查询

Node.js中Buffer API详解 在Node.js中&#xff0c;Buffer是一个用于处理二进制数据流的全局对象&#xff0c;它类似于数组&#xff0c;但可以存储任意大小的数据。Buffer对象是由C代码实现的底层结构&#xff0c;而JavaScript代码则提供了一些高级的API。本文将介绍Node.js中B…

顺德区建设局网站做跳转链接到自己的网站

一、成员变量及其基本结构 1.基本结构模型 本质是一个带头双向循环列表&#xff0c;将节点进行封装&#xff0c;并且为了方便使用&#xff0c;进行重定义 2.节点的封装定义 template<class T>//定义节点struct list_node{list_node<T>* _prev;list_node<T>…

中山 网站关键词优化如皋建设网站

首先创建一个对象 将这个对象使用mybatis插入数据库 Student stu new Student(null, "stu", 18, null); mapper.insertEntity(stu); System.out.println(stu); 在mapper.xml文件中开启配置之后输出传入的stu对象就会有主键id回传 <!-- 插入语句示例 int ins…

企业网站seo手机优化关键词的公司

线程 一、JAVA中创建线程的两种方法&#xff1a; 1.继承java.lang.Thread类。 2.实现java.lang.Runnable接口。 3.在JAVA中Thread类实现了Runnable接口&#xff0c;并且Thread类中定义了许多与线程相关的属性与方法。 二、run():线程体&#xff0c;线程将要执行的代码。 三、线…

网站建设中倒计时源码2018一级a做爰片免费网站

前言 该系列文章用于我对一周中leetcode每日一题or其他不会的题的复盘总结。 一方面用于自己加深印象&#xff0c;另一方面也希望能对读者的算法能力有所帮助&#xff0c; 同时也希望能帮助同样坚持刷题的同学加深印象~ 该复盘对我来说比较容易的题我会复盘的比较粗糙&#…

网络广告网站网站设计流程的步骤包括

很多人的小指头都会带一个尾戒&#xff0c;不是白金就是黄金&#xff0c;大部份是简单的一环&#xff0c;没有太多装饰&#xff0c;也很少镶宝石&#xff0c;目的不在于当作饰品&#xff0c;而是保命之用。 也有人不习惯戴尾戒&#xff0c;而是把指甲留得长长的&#xff0c;长到…

这个是以前我自己做的一个网站阳江市企业网站优化

目录 一、从文件中读取数据 &#xff08;一&#xff09;读取整个文件 &#xff08;二&#xff09;文件路径 &#xff08;三&#xff09;逐行读取 &#xff08;四&#xff09;创建一个包含文件各行内容的列表 &#xff08;五&#xff09;使用文件的内容 &#xff08;六&a…

科技企业网站建设深圳网站建设公司地图

深入浅出.NET泛型编程(1) 使用泛型集合  .NET 2.0的System.Collections.Generics 命名空间包含了泛型集合定义。各种不同的集合/容器类都被"参数化"了。为使用它们,只需简单地指定参数化的类型即可。请看例2:例2.类型安全的泛型列表List&#xff1c;int&#xff1e…

做一个模板网站多少钱北京开公司的基本流程及费用

一&#xff0c;实验的流程图二&#xff0c;实验代码注&#xff1a;本代码主要来自豆丁&#xff0c;加入本人的部分修改。。//本FCFS是用不带都结点的链表完成。当然也可以用其他数据结构 #include<stdio.h>#include<stdlib.h>typedef struct PCB //定义进程控…

湖北建站管理系统信息简单的网站建设合同书

CocoaChina05-13正则表达式&#xff0c;一个十分古老而又强大的文本处理工具&#xff0c;仅仅用一段非常简短的表达式语句&#xff0c;便能够快速实现一个非常复杂的业务逻辑。熟练地掌握正则表达式的话&#xff0c;能够使你的开发效率得到极大的提升。下面是技匠整理的&#x…

县建设局 协会网站扫二维码直接进网站怎么做

系列文章目录 什么是计算机网络&#xff1f; 什么是网络协议&#xff1f; 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能&#xff08;1&#xff09;——速率、带宽、延迟 计算机网络性能&#xff08;2&#xff09;…

自己做的网站怎么上传到域名西地那非可以长期吃吗

ACM中的工作分配问题是一个典型的回溯问题&#xff0c;利用回溯思想能很准确地得到问题的解。下面就这个问题好好分析下。 问题描述&#xff1a; 设有n件工作分配给n个人。为第i个人分配工作j所需的费用为c[i][j] 。试设计一个算法&#xff0c;计算最佳工作分配方案&#xff0c…

网站建设需要提供的资料购物网站用户管理

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 基于swing的火车站订票系统 系统有2权限&#xff1a;…