当前位置: 首页 > news >正文

做php网站阿里云服务器办公室装修图

做php网站阿里云服务器,办公室装修图,字体 添加 wordpress,2021年十大热点事件文章目录 1 前言2、创建SpringBoot程序2.1、创建项目2.2、添加依赖2.3、生成实体类、service与Mapper1.5、配置读写分离 2、测试2.1、读写分离测试2.2、事务测试2.3、负载均衡测试 结语 1 前言 shardingshpere-jdbc定位为轻量级 Java 框架#xff0c;在 Java 的 JDBC 层提供的… 文章目录 1 前言2、创建SpringBoot程序2.1、创建项目2.2、添加依赖2.3、生成实体类、service与Mapper1.5、配置读写分离 2、测试2.1、读写分离测试2.2、事务测试2.3、负载均衡测试 结语 1 前言 shardingshpere-jdbc定位为轻量级 Java 框架在 Java 的 JDBC 层提供的额外服务。 它使用客户端直连数据库以 jar 包形式提供服务无需额外部署和依赖可理解为增强版的 JDBC 驱动完全兼容 JDBC 和各种 ORM 框架。 关于mysql配置主从复制可以参考之前写的文章0101docker mysql8镜像主从复制-运维-mysql 2、创建SpringBoot程序 2.1、创建项目 项目类型Spring Initializr SpringBoot脚手架http://start.aliyun.com 项目名sharding-jdbc-demo SpringBoot版本2.7.10 2.2、添加依赖 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.gaogzhen/groupIdartifactIdsharging-jdbc-demo/artifactIdversion0.0.1-SNAPSHOT/versionnamesharging-jdbc-demo/namedescriptionDemo project for Spring Boot/descriptionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.7.10/versionrelativePath //parentpropertiesjava.version1.8/java.versionproject.build.sourceEncodingUTF-8/project.build.sourceEncodingproject.reporting.outputEncodingUTF-8/project.reporting.outputEncodingspring-boot.version2.7.10/spring-boot.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.apache.shardingsphere/groupIdartifactIdshardingsphere-jdbc-core-spring-boot-starter/artifactIdversion5.1.1/version/dependencydependencygroupIdcom.mysql/groupIdartifactIdmysql-connector-j/artifactId/dependencydependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.3.1/version/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency/dependenciesbuildpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.8.1/versionconfigurationsource1.8/sourcetarget1.8/targetencodingUTF-8/encoding/configuration/pluginplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdversion${spring-boot.version}/versionconfigurationmainClasscom.gaogzhen.shardingjdbcdemo.ShardingJdbcDemoApplication/mainClass/configurationexecutionsexecutionidrepackage/idgoalsgoalrepackage/goal/goals/execution/executions/plugin/plugins/build/project2.3、生成实体类、service与Mapper 使用idea插件mybatisX根据数据库连接表生成实体类、service、mapper 第一步如下图2.3-1所示 第二步如下图2.3-2所示: 实体类 package com.gaogzhen.shardingjdbcdemo.entity;import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import lombok.Data;/*** 用户* author gaogzhen* TableName t_user*/ TableName(value t_user) Data public class User implements Serializable {TableField(exist false)private static final long serialVersionUID 1L;TableId(type IdType.AUTO)private Long id;/*** 用户名*/private String name;}service package com.gaogzhen.shardingjdbcdemo.service;import com.gaogzhen.shardingjdbcdemo.entity.User; import com.baomidou.mybatisplus.extension.service.IService;/** * author gaogzhen * description 针对表【t_user】的数据库操作Service * createDate 2023-08-13 15:37:14 */ public interface UserService extends IServiceUser {}serviceImpl package com.gaogzhen.shardingjdbcdemo.service.impl;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gaogzhen.shardingjdbcdemo.entity.User; import com.gaogzhen.shardingjdbcdemo.service.UserService; import com.gaogzhen.shardingjdbcdemo.mapper.UserMapper; import org.springframework.stereotype.Service;/** * author gaogzhen * description 针对表【t_user】的数据库操作Service实现 * createDate 2023-08-13 15:37:14 */ Service public class UserServiceImpl extends ServiceImplUserMapper, Userimplements UserService{}mapper package com.gaogzhen.shardingjdbcdemo.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.gaogzhen.shardingjdbcdemo.entity.User; import org.apache.ibatis.annotations.Mapper;/** * author gaogzhen * description 针对表【t_user】的数据库操作Mapper * createDate 2023-08-13 15:37:14 * Entity com.gaogzhen.shardingjdbcdemo.entity.User */ Mapper public interface UserMapper extends BaseMapperUser {}1.5、配置读写分离 application.properties # 应用名称 spring.application.namesharging-jdbc-demo # 开发环境设置 spring.profiles.activedev # 内存模式 spring.shardingsphere.mode.typeMemory# 配置真实数据源 spring.shardingsphere.datasource.namesmaster,slave1,slave2# 配置第 1 个数据源 spring.shardingsphere.datasource.master.typecom.zaxxer.hikari.HikariDataSource spring.shardingsphere.datasource.master.driver-class-namecom.mysql.jdbc.Driver spring.shardingsphere.datasource.master.jdbc-urljdbc:mysql://127.0.0.1:3340/db_user?allowPublicKeyRetrievaltrueuseSSLfalse spring.shardingsphere.datasource.master.usernameroot spring.shardingsphere.datasource.master.password123456# 配置第 2 个数据源 spring.shardingsphere.datasource.slave1.typecom.zaxxer.hikari.HikariDataSource spring.shardingsphere.datasource.slave1.driver-class-namecom.mysql.jdbc.Driver spring.shardingsphere.datasource.slave1.jdbc-urljdbc:mysql://127.0.0.1:3341/db_user?allowPublicKeyRetrievaltrueuseSSLfalse spring.shardingsphere.datasource.slave1.usernameroot spring.shardingsphere.datasource.slave1.password123456# 配置第 3 个数据源 spring.shardingsphere.datasource.slave2.typecom.zaxxer.hikari.HikariDataSource spring.shardingsphere.datasource.slave2.driver-class-namecom.mysql.jdbc.Driver spring.shardingsphere.datasource.slave2.jdbc-urljdbc:mysql://127.0.0.1:3342/db_user?allowPublicKeyRetrievaltrueuseSSLfalse spring.shardingsphere.datasource.slave2.usernameroot spring.shardingsphere.datasource.slave2.password123456# 读写分离类型如: StaticDynamic spring.shardingsphere.rules.readwrite-splitting.data-sources.myds.typeStatic # 写数据源名称 spring.shardingsphere.rules.readwrite-splitting.data-sources.myds.props.write-data-source-namemaster # 读数据源名称多个从数据源用逗号分隔 spring.shardingsphere.rules.readwrite-splitting.data-sources.myds.props.read-data-source-namesslave1,slave2# 负载均衡算法名称 spring.shardingsphere.rules.readwrite-splitting.data-sources.myds.load-balancer-namealg_round# 负载均衡算法配置 # 负载均衡算法类型 spring.shardingsphere.rules.readwrite-splitting.load-balancers.alg_round.typeROUND_ROBIN spring.shardingsphere.rules.readwrite-splitting.load-balancers.alg_random.typeRANDOM spring.shardingsphere.rules.readwrite-splitting.load-balancers.alg_weight.typeWEIGHT spring.shardingsphere.rules.readwrite-splitting.load-balancers.alg_weight.props.slave11 spring.shardingsphere.rules.readwrite-splitting.load-balancers.alg_weight.props.slave22# 打印SQl spring.shardingsphere.props.sql-showtrue# mybatis plus 配置 mybatis.mapper-locationsclasspath:mapper/*.xml mybatis.type-aliases-packagecom.gaogzhen.shardingjdbcdemo.entity myds为自定义的逻辑数据源名称当前生效的负载均衡算法为轮询可以通过更换负载均衡算法名称来测试随机和权重。 2、测试 2.1、读写分离测试 package com.gaogzhen.shardingjdbcdemo;import com.gaogzhen.shardingjdbcdemo.entity.User; import com.gaogzhen.shardingjdbcdemo.mapper.UserMapper; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.transaction.annotation.Transactional;import javax.annotation.Resource; import java.util.List;SpringBootTest public class ReadWriteTest {Resourceprivate UserMapper userMapper;/*** 读写分离写入数据的测试*/Testpublic void testInsert(){User user new User();user.setName(张三);userMapper.insert(user);User user1 userMapper.selectById(1L);}} 2.2、事务测试 为了保证主从库间的事务一致性避免跨服务的分布式事务ShardingSphere-JDBC的主从模型中事务中的数据读写均用主库。 不添加Transactionalinsert对主库操作select对从库操作添加Transactional则insert和select均对主库操作**注意**在JUnit环境下的Transactional注解默认情况下就会对事务进行回滚即使在没加注解Rollback也会对事务回滚 /*** 事务测试*/TransactionalTestpublic void testTrans() {User user new User();user.setName(xxx001);userMapper.insert(user);ListUser users userMapper.selectList(null);}2.3、负载均衡测试 /*** 负载均衡测试*/ Test public void testLoadBalance() {ListUser users1 userMapper.selectList(null);ListUser users2 userMapper.selectList(null);}也可以在web请求中测试负载均衡 package com.gaogzhen.shardingjdbcdemo.controller;import com.gaogzhen.shardingjdbcdemo.entity.User; import com.gaogzhen.shardingjdbcdemo.service.UserService; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource; import java.util.List;RestController RequestMapping(/user) public class UserController {Resourceprivate UserService userService;/*** 测试负载均衡策略*/GetMapping(selectAll)public void selectAll(){ListUser users userService.list();users.forEach(System.out::println);} }命令行测试结果如下图所示 结语 如果小伙伴什么问题或者指教欢迎交流。 QQ:806797785 仓库源代码地址https://github.com/gaogzhen/shardingsphere-jdbc-demo.git 参考链接: [1]ShardingSphere5实战教程[CP/OL].2022-09-14.p18-23. [2]mysql官网使用配置文件文档[CP/OL].
http://www.w-s-a.com/news/662611/

相关文章:

  • 江西省新的建设厅三类人员网站做标记网站
  • 做最精彩绳艺网站产品设计培训
  • 营销型网站建设品牌深圳网络推广最新招聘
  • 单位网站等级保护必须做吗广州app软件开发公司
  • 免费flash网站模板怎么仿网站链接
  • 泉州网站建设哪家好平面设计转行做什么比较好
  • 忘记网站备案账号设计一个网站
  • 国内购物网站哪个最好海珠营销网站建设报价
  • 小型网站搭建logo免费制作
  • dede 网站模板哈尔滨房产信息网官方网站
  • 设计师个人作品集模板班级优化大师网页版登录
  • 高端网站建设教学网站开发前期准备工作
  • 网站评论列表模板设计官网的
  • 怎么做可以访问网站ui设计自学学的出来吗
  • 网站如何接入支付宝软件开发工作内容描述
  • 廊坊网站建设搭建整合营销传播的效果表现为
  • 网站服务器在本地是指园林绿化
  • 公司网站建设需要什么科目网站代运营价格
  • 网站建设前的ER图ppt模板图片 背景
  • 做一个网站花多少钱网站导航营销步骤
  • 仙桃网站定制做房产网站能赚钱吗
  • 西安网站制作模板最新源码
  • 南京江宁网站建设大学高校网站建设栏目
  • 模板网站建设明细报价表做网站第一
  • 公司网站建设系统软件开发 上海
  • 怎么让公司建设网站固安县建设局网站
  • 360免费建站官网入口手机网站建设设计
  • 商城网站建站系统dw如何做网页
  • 网站建设的公司收费我有网站 怎么做淘宝推广的
  • 网站建设策划书事物选题手机兼职app