网站出现的问题吗宁波高端网站设计价格

news/2025/10/4 3:12:52/文章来源:
网站出现的问题吗,宁波高端网站设计价格,建筑方案设计,盐城建设网站1.什么是atomikos Atomikos是一个轻量级的分布式事务管理器#xff0c;实现了Java Transaction API (JTA)规范#xff0c;可以很方便的和Spring Boot集成#xff0c;支持微服务场景下跨节点的全局事务。Atomikos公司官方网址为#xff1a;https://www.atomikos.com/。其旗下… 1.什么是atomikos Atomikos是一个轻量级的分布式事务管理器实现了Java Transaction API (JTA)规范可以很方便的和Spring Boot集成支持微服务场景下跨节点的全局事务。Atomikos公司官方网址为https://www.atomikos.com/。其旗下最著名的产品就是事务管理器。产品分两个版本 TransactionEssentials开源的免费产品ExtremeTransactions上商业版需要收费。 2.环境搭建 第一个mysql数据库 docker run --name docker-mysql -e MYSQL_ROOT_PASSWORD123456 -p 3333:3306 -d mysql 第二个mysql数据库 docker run --name docker-mysql-2 -e MYSQL_ROOT_PASSWORD123456 -p 3334:3306 -d mysql 初始化数据 create database demo; create table user_info ( user_id varchar(64) not null primary key, username varchar(100) null , age int(3) null , gender tinyint(1) null , remark varchar(255) null , create_time datetime null , create_id varchar(64) null , update_time datetime null , update_id varchar(64) null , enabled tinyint(1) default 1 null ); 说明 msyql账号root mysql密码123456 3.项目代码 实验目的实现2个mysql数据的分布式事务管理要么全部成功只要有一个失败就会滚。 pom..xml ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdparentartifactIdspringboot-demo/artifactIdgroupIdcom.et/groupIdversion1.0-SNAPSHOT/version/parentmodelVersion4.0.0/modelVersionartifactIdatomikos/artifactIdpropertiesmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.target/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-autoconfigure/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter --dependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion1.3.0/version!-- 1.3.0以上的版本没有MapperScan以及Select注解 --/dependency!-- automaticjta的分布式事务管理 --!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-jta-atomikos --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-jta-atomikos/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-devtools/artifactIdscoperuntime/scope/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactId!--boot 2.1默认 mysql8的版本; boot 2.0默认mysql5版本--version8.0.13/version!--version5.1.46/version--!--scoperuntime/scope--/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optionalversion1.18.2/version/dependency/dependencies /project mapper 创建2个mapper连接不同的数据库 package com.et.atomikos.mapper1;import org.apache.catalina.User; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select;public interface UserInfoMapper1 {// querySelect(SELECT * FROM user_info WHERE username #{username})User findByName(Param(username) String username);// addInsert(INSERT INTO user_info(user_id,username, age) VALUES(#{userId},#{username}, #{age}))int insert(Param(userId) String userId,Param(username) String username, Param(age) Integer age); } package com.et.atomikos.mapper2;import org.apache.catalina.User; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select;public interface UserInfoMapper2 {// querySelect(SELECT * FROM user_info WHERE username #{username})User findByName(Param(username) String username);// addInsert(INSERT INTO user_info(user_id,username, age) VALUES(#{userId},#{username}, #{age}))int insert(Param(userId) String userId,Param(username) String username, Param(age) Integer age); } service 创建2个service分别用不同mapper package com.et.atomikos.mapper1;import com.et.atomikos.mapper1.UserInfoMapper1; import com.et.atomikos.mapper2.UserInfoMapper2; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional;Service public class ManyService1 {Autowiredprivate UserInfoMapper1 userInfoMapper1;Autowiredprivate UserInfoMapper2 userInfoMapper2;Transactionalpublic int insert(String userId,String username, Integer age) {int insert userInfoMapper1.insert(userId,username, age);int i 1 / age;// if age is zero ,then a error will be happened.return insert;}Transactionalpublic int insertDb1AndDb2(String userId,String username, Integer age) {int insert userInfoMapper1.insert(userId,username, age);int insert2 userInfoMapper2.insert(userId,username, age);int i 1 / age;// if age is zero ,then a error will be happened.return insert insert2;}} package com.et.atomikos.mapper2;import com.et.atomikos.mapper2.UserInfoMapper2; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional;Service public class ManyService2 {Autowiredprivate UserInfoMapper2 userInfoMapper2;Transactionalpublic int insert(String userId,String username, Integer age) {int i userInfoMapper2.insert(userId,username, age);System.out.println(userInfoMapper2.insert end : null);int a 1 / 0;//touch a errorreturn i;}} config 初始化数据源1和数据源2 package com.et.atomikos.config;import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties;Data ConfigurationProperties(prefix spring.datasource.test1) public class DBConfig1 {// Value(${mysql.datasource.test1.jdbcurl})//Value(${jdbcurl})private String jdbcurl;//private String url;private String username;private String password;private int minPoolSize;private int maxPoolSize;private int maxLifetime;private int borrowConnectionTimeout;private int loginTimeout;private int maintenanceInterval;private int maxIdleTime;private String testQuery; } package com.et.atomikos.config;import com.atomikos.jdbc.AtomikosDataSourceBean; import com.mysql.cj.jdbc.MysqlXADataSource; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.SqlSessionTemplate; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;import javax.sql.DataSource; import java.sql.SQLException;/*** author liuhaihua* version 1.0* ClassName MyBatisConfig1* Description todo* date 2024年04月18日 13:37*/Configuration MapperScan(basePackages com.et.atomikos.mapper1, sqlSessionTemplateRef test1SqlSessionTemplate) public class MyBatisConfig1 {Bean(name test1DataSource) //test1DataSourcepublic DataSource testDataSource(DBConfig1 testConfig) throws SQLException {MysqlXADataSource mysqlXaDataSource new MysqlXADataSource();//mysqlXaDataSource.setUrl(testConfig.getUrl());mysqlXaDataSource.setUrl(testConfig.getJdbcurl());mysqlXaDataSource.setPinGlobalTxToPhysicalConnection(true);mysqlXaDataSource.setPassword(testConfig.getPassword());mysqlXaDataSource.setUser(testConfig.getUsername());mysqlXaDataSource.setPinGlobalTxToPhysicalConnection(true);// 将本地事务注册到创 Atomikos全局事务AtomikosDataSourceBean xaDataSource new AtomikosDataSourceBean();xaDataSource.setXaDataSource(mysqlXaDataSource);xaDataSource.setUniqueResourceName(test1DataSource);xaDataSource.setMinPoolSize(testConfig.getMinPoolSize());xaDataSource.setMaxPoolSize(testConfig.getMaxPoolSize());xaDataSource.setMaxLifetime(testConfig.getMaxLifetime());xaDataSource.setBorrowConnectionTimeout(testConfig.getBorrowConnectionTimeout());xaDataSource.setLoginTimeout(testConfig.getLoginTimeout());xaDataSource.setMaintenanceInterval(testConfig.getMaintenanceInterval());xaDataSource.setMaxIdleTime(testConfig.getMaxIdleTime());xaDataSource.setTestQuery(testConfig.getTestQuery());return xaDataSource;}Bean(name test1SqlSessionFactory)public SqlSessionFactory testSqlSessionFactory(Qualifier(test1DataSource) DataSource dataSource)throws Exception {SqlSessionFactoryBean bean new SqlSessionFactoryBean();bean.setDataSource(dataSource);return bean.getObject();}Bean(name test1SqlSessionTemplate)public SqlSessionTemplate testSqlSessionTemplate(Qualifier(test1SqlSessionFactory) SqlSessionFactory sqlSessionFactory) throws Exception {return new SqlSessionTemplate(sqlSessionFactory);} } 数据源2也是类似配置 controller package com.et.atomikos.controller;import com.et.atomikos.mapper1.ManyService1; import com.et.atomikos.mapper2.ManyService2; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;RestController public class HelloWorldController {Autowiredprivate ManyService1 manyService1;Resourceprivate ManyService2 manyService2;//http://localhost:8088/datasource1?userId9usernamedatasource1age2RequestMapping(value datasource1)public int datasource1(String userId,String username, Integer age) {return manyService1.insert(userId,username, age);}//http://localhost:8088/datasource2?userId9usernamedatasource2age2RequestMapping(value datasource2)public int datasource2(String userId,String username, Integer age) {return manyService2.insert(userId,username, age);}//http://localhost:8088/insertDb1AndDb2?userId1usernametom5age2//http://localhost:8088/insertDb1AndDb2?userId2usernametom5age0 //touch a errorRequestMapping(value insertDb1AndDb2)public int insertDb1AndDb2(String userId,String username, Integer age) {return manyService1.insertDb1AndDb2(userId,username, age);}} application.yaml server:port: 8088spring:application:name: manyDatasourcedatasource:# spring.datasource.test1# druid:test1:jdbcurl: jdbc:mysql://localhost:3333/demo?serverTimezoneGMT%2B8useUnicodetruecharacterEncodingutf-8username: rootpassword: 123456initial-size: 1min-idle: 1max-active: 20test-on-borrow: truedriver-class-name: com.mysql.cj.jdbc.Drivertype: com.alibaba.druid.pool.DruidDataSourceminPoolSize: 3maxPoolSize: 25maxLifetime: 20000borrowConnectionTimeout: 30loginTimeout: 30maintenanceInterval: 60maxIdleTime: 60test2:jdbcurl: jdbc:mysql://localhost:3334/demo?serverTimezoneGMT%2B8useUnicodetruecharacterEncodingutf-8username: rootpassword: 123456driver-class-name: com.mysql.cj.jdbc.Drivertype: com.alibaba.druid.pool.DruidDataSourceminPoolSize: 3maxPoolSize: 25maxLifetime: 20000borrowConnectionTimeout: 30loginTimeout: 30maintenanceInterval: 60maxIdleTime: 60mybatis:mapper-locations: classpath:mapper/*.xmlspring.resources.static-locations: classpath:static/,file:static/logging:level:czs: debugorg.springframework: WARNorg.spring.springboot.dao: debug 以上只是一些关键代码所有代码请参见下面代码仓库 代码仓库 https://github.com/Harries/springboot-demo 4.测试 启动Spring Boot 应用 插入第一个数据测试 http://localhost:8088/datasource1?userId9usernamedatasource1age2 插入第二个数据库 http://localhost:8088/datasource2?userId9usernamedatasource2age2 同时插入2个数据库 http://localhost:8088/insertDb1AndDb2?userId1usernametom5age2 异常回滚测试 http://localhost:8088/insertDb1AndDb2?userId2usernametom5age0  //touch a error 5.参考 https://github.com/ColoZhu/springbootmanyDatasourcehttp://www.liuhaihua.cn/archives/710435.html

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

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

相关文章

校区网站建设30人的网站建设公司年利润是多少

基础概念公式推到可参考该专栏下的前几篇博文。 纬向破斜组织图: 下半部分(从左往右):,3上2下2上1下,右斜,飞数为1 上半部分(从下往上):,2上2下1上3下。左斜,飞数为-1 通过分析可…

设计商城商务网站营销案例最新

7. out_of_focus_deblur_filter.cpp使用维纳滤波器来恢复失焦的图像 代码的主要功能是通过使用维纳滤波器来恢复失焦的图像,它读取一个灰度图像文件,对其进行滤波操作,并将结果保存为新文件。这个过程包括计算点扩散函数(PSF),执行…

通辽市做网站公司版权申请网站

目录 1.触发器1.1.DDL触发器1.2.DML触发器1.3.创建触发器1.3.1.创建DML触发器1.3.2.创建DDL触发器1.3.3.嵌套触发器1.3.4.递归触发器1.4.管理触发器1.触发器 触发器是一种特殊的存储过程,与表紧密关联。 1.1.DDL触发器 当服务器或数据库中发生数据定义语言&#xff…

网站建设推广熊掌号鞋网站建设

🎶Leetcode 151. 反转字符串中的单词 难度:中等 ✨题目描述: 给你一个字符串 s ,请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 …

电脑做服务器建网站并让外网访问成都网页设计培训哪家好

在这里和下一级别的分析中有必要先讲一下这个h->mb.cache(没法讲,就是cache!)。 x264_macroblock_cache_load将参考帧中某位置的(重建后)数据保存进cache,供参考和反复使用。 x264_macroblock_cache_s…

建站的方式有哪些创建一个餐饮公司的模板

1. Webpack 当前Web开发面临的困境 文件依赖关系错综复杂静态资源请求效率低模块化支持不友好浏览器对高级JavaScript特性兼容程度低 1.1 webpack概述 webpack是一个流行的前端项目构建工具,可以解决当前web开发中所面临的困境. webpack提供了友好的模块化支持,以及代码压…

旅游网站模板源码驻马店阿里巴巴做网站

XXXXXX.datagrid({url: "${pageContext.request.contextPath}/xx/xx/xx,});用上述方式动态加载datagrid的数据时,通过net监听,发现调用了两遍XX方法,目前的解决方案是,将url放到datagrid初始化的时候执行。$(#XXXX).datagrid…

柳州市建设工程质量安全监督管理处网站建设银行手机不用了怎么登陆网站

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

做电子商务网站注册哪一类商标浙江建设厅网站官网

内容摘要:基于信号到达角度(AOA)的定位算法是一种常见的无线传感器网络节点自定位算法,算法通信开销低,定位精度较高。由于各种原因,估测的多个节点位置可能存在不可靠位置,提出了一种改进的基于信号到达角的定位方法&…

电子商务如何做网站销售wordpress禁止自动更新

🎬慕斯主页:修仙—别有洞天 ♈️今日夜电波:泥中に咲く—ウォルピスカーター 0:34━━━━━━️💟──────── 4:46 🔄 ◀️ ⏸ ▶…

计算机考试模拟网站怎么做网站404页面设置

在mysql数据库中,null是一个经常出现的情况,关于mysql中的null,有哪些注意事项呢?下面简单总结归纳下,后续会不断补充。1. is null首先判断数据库中某一列的值是否为null,不能用等于来判断,必须…

做网站的怎么赚钱做网站对客户有什么帮助

类和对象面试题 1. & 和 && 的区别 参考答案 & 运算符有两种用法:(1) 按位与;(2) 逻辑与。&& 运算符是短路与运算。逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是 true 整个表达式的…

系网站的开发和建设毕业设计为什么很少人敢娶外贸女

软考高级系统架构设计师系列之:深入理解设计模式 一、设计模式相关技术文章二、设计原则三、设计模式概念四、设计模式的分类五、创建性模式六、创建性模式-工厂方法模式七、创建性模式-抽象工厂模式八、创建性模式-构建器模式九、面向对象设计-结构性模式十、结构性模式-适配…

保健食品东莞网站建设注册域名卖钱很暴利吗

说在前面 🎈不知道大家对于算法的学习是一个怎样的心态呢?为了面试还是因为兴趣?不管是出于什么原因,算法学习需要持续保持。 题目描述 给你一个下标从 0 开始、大小为 m x n 的矩阵 grid ,矩阵由若干 正 整数组成。 …

淮阴网站建设做报价在哪个网站询价

FL Studio 21.2 带有 stem 分离和 FL Cloud,这是一项专为 FL Studio 打造的具有里程碑意义的新服务。其他新功能包括 FL Studio Fruity Edition 的 Audio Clips(音频剪辑)和一个新的模拟建模合成器 Kepler。 为庆祝 FL Studio 21.2 的发布&am…

qq空间网站网站关键词库怎么做

[react] componentWillUpdate可以直接修改state的值吗 1: 不行,这样会导致无限循环报错。 2:在react中直接修改state,render函数不会重新执行渲染,应使用setState方法进行修改 个人简介 我是歌谣,欢迎和大家一起交流…

先做网站后台还是前台百度广告代理商

ConcurrentHashMap ConcurrentHashMap的整体架构ConcurrentHashMap的基本功能ConcurrentHashMap在性能方面的优化 concurrentHashMap: ConcurrentHashMap的整体架构 concurrentHashMap是由数组链表红黑树组成 当我们初始化一个ConcurrentHashMap实例时&#xff0c…

营销活动网站有了域名后怎样做网站

动态内存管理 我们之前要开辟内存用的方法都是定义变量,比如 但是上述开辟内存的方法有两个特点 1空间开辟大小是固定的 2数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配 malloc和free c中提供一个动态内存开辟函数 这…

怎么自己制作网站平台产看网站权重

1. RestClient ES官方提供了各种不同语言的客户端,用来操作ES。这些客户端的本质就是组装DSL语句,通过http请求发送给ES。官方文档地址:Elasticsearch Clients | Elastic 其中的Java Rest Client又包括两种: Java Low Level Res…

从衡阳麻衣事件到AI元人文:用户端元人文实践的进化路径研究——声明ai研究

从"衡阳麻衣事件"到AI元人文:用户端元人文实践的进化路径研究 一、引言:数字时代的人文觉醒 在2025年的中国衡阳,一场看似普通的"麻衣陈情"事件引发了AI领域的深刻反思,成为推动AI元人文构想诞…