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

淘宝上的网站怎么做wordpress php5.2

淘宝上的网站怎么做,wordpress php5.2,中国临沂网站优化,做注册任务网站源码一.需求背景 项目需要实现在多个数据源之间读写数据#xff0c;例如在 A 数据源和 B 数据源读取数据#xff0c;然后在 C 数据源写入数据 或者 部分业务数据从 A 数据源中读取、部分从B数据源中读取诸如此类需求。本文将简单模拟在SpringBoot项目中实现不同数据源之间读取数…一.需求背景 项目需要实现在多个数据源之间读写数据例如在 A 数据源和 B 数据源读取数据然后在 C 数据源写入数据 或者 部分业务数据从 A 数据源中读取、部分从B数据源中读取诸如此类需求。本文将简单模拟在SpringBoot项目中实现不同数据源之间读取数据。 二.技术概述 dynamic-datasource 是一个开源的 SpringBoot 多数据源启动器提供了丰富的功能使用者只需完成基本的数据源配置配合使用DS注解即可轻松实现多数据源之间的切换。其支持 Jdk 1.7, SpringBoot 1.5.x 2.x.x 3.x.x。JPA用户不建议使用JPA自带事务无法连续切库。 以下特性和约定摘录自官方文档dynamic-datasource 特性 支持 数据源分组 适用于多种场景 纯粹多库 读写分离 一主多从 混合模式。 支持数据库敏感配置信息 加密(可自定义) ENC()。 支持每个数据库独立初始化表结构schema和数据库database。 支持无数据源启动支持懒加载数据源需要的时候再创建连接。 支持 自定义注解 需继承DS(3.2.0)。 提供并简化对DruidHikariCpBeeCp,Dbcp2的快速集成。 提供对Mybatis-PlusQuartzShardingJdbcP6syJndi等组件的集成方案。 提供 自定义数据源来源 方案如全从数据库加载。 提供项目启动后 动态增加移除数据源 方案。 提供Mybatis环境下的 纯读写分离 方案。 提供使用 spel动态参数 解析数据源方案。内置spelsessionheader支持自定义。 支持 多层数据源嵌套切换 。ServiceA ServiceB ServiceC 提供 基于seata的分布式事务方案 。 提供 本地多数据源事务方案。 约定 本框架只做 切换数据源 这件核心的事情并不限制你的具体操作切换了数据源可以做任何CRUD。配置文件所有以下划线 _ 分割的数据源 首部 即为组的名称相同组名称的数据源会放在一个组下。切换数据源可以是组名也可以是具体数据源名称。组名则切换时采用负载均衡算法切换。、默认的数据源名称为 master 你可以通过 spring.datasource.dynamic.primary 修改。代码块里主动切换 方法上的注解优 类上注解就近原则DS支持继承抽象类上的DS支持继承接口上的DS。 注官网文档只有基础篇可免费查阅其他内容查阅需付费29.9因此如果基础篇所讲解功能无法满足需求业务场景比较复杂且不愿付费请勿使用本框架 三.编码实现 业务说明从A数据源查询出学生数据同时从B数据源查询出教师数据。 技术选型SpringBoot 2.7.6 MyBatis-Plus 3.5.4 MySQL 8.0 1引入Maven坐标 dependencygroupIdcom.baomidou/groupIdartifactIddynamic-datasource-spring-boot-starter/artifactIdversion3.5.2/version /dependency2创建模拟数据库表 # A 数据源 create DATABASE testA; use testA; CREATE TABLE student( id int, username VARCHAR(12) );# B 数据源 create DATABASE testB; use testB; CREATE TABLE teacher( id int, username VARCHAR(12) );3在yml文件中配置数据源 spring:datasource:dynamic:primary: testA #设置默认的数据源或者数据源组,默认值即为masterstrict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源datasource:testA:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/testAusername: rootpassword: roottestB:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/testBusername: rootpassword: root4可以用MyBatis-X插件快速生成项目骨架。 5使用DS注解在mapper文件中指定数据源。注意数据源名称需要与yml配置中的一致。 // 指定学生表的数据源为testA DS(testA) public interface StudentMapper extends BaseMapperStudent { }// 指定教师表的数据源为testB DS(testB) public interface TeacherMapper extends BaseMapperTeacher { }5创建测试类进行测试 SpringBootTest public class MultipleDataSourceTest {Resourceprivate StudentService studentService;Resourceprivate TeacherService teacherService;Testvoid testSelect() {System.out.println( 学生表数据 );for (Student student : studentService.list()) {System.out.println( student);}System.out.println( 教师表数据 );for (Teacher teacher : teacherService.list()) {System.out.println( teacher);}} }6相关执行日志查看可以通过日志看到已经成功加载两个数据源并且指定默认数据源为[testA]同时我们所查询的数据也能正常出来。 INFO 312 --- [main] com.zaxxer.hikari.HikariDataSource: testA - Starting... INFO 312 --- [main] com.zaxxer.hikari.HikariDataSource: testA - Start completed. INFO 312 --- [main] com.zaxxer.hikari.HikariDataSource: testB - Starting... INFO 312 --- [main] com.zaxxer.hikari.HikariDataSource: testB - Start completed. INFO 312 --- [main] c.b.d.d.DynamicRoutingDataSource: dynamic-datasource - add a datasource named [testB] success INFO 312 --- [main] c.b.d.d.DynamicRoutingDataSource: dynamic-datasource - add a datasource named [testA] success INFO 312 --- [main] c.b.d.d.DynamicRoutingDataSource: dynamic-datasource initial loaded [2] datasource,primary datasource named [testA]学生表数据 Student(id1, username学生1)Student(id2, username学生2)Student(id3, username学生3)Student(id4, username学生4)Student(id5, username学生5)教师表数据 Teacher(id1, username教师1)Teacher(id2, username教师2)Teacher(id3, username教师3)Teacher(id4, username教师4)Teacher(id5, username教师5) INFO 312 --- [ionShutdownHook] c.b.d.d.DynamicRoutingDataSource: dynamic-datasource start closing .... INFO 312 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource: testB - Shutdown initiated... INFO 312 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource: testB - Shutdown completed. INFO 312 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource: testA - Shutdown initiated... INFO 312 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource: testA - Shutdown completed. INFO 312 --- [ionShutdownHook] c.b.d.d.DynamicRoutingDataSource: dynamic-datasource all closed success,bye四.补充说明 以上示例可以完成基本的多数据源切换需求对于一些复杂场景由于官方文档付费请根据需要使用。例如 在需要切换数据源的代码最外层加上了事务注解Transactional将会导致数据源切换失效上述代码加上注解运行将报错由于无法切换数据源将使用默认数据源如果默认数据源中没有对应的表将报错在网上检索发现通过添加官方提供的DSTransactional即可实现事务下数据源切换 TestTransactionalvoid testSelect() {System.out.println( 学生表数据 );for (Student student : studentService.list()) {System.out.println( student);}System.out.println( 教师表数据 );for (Teacher teacher : teacherService.list()) {System.out.println( teacher);}}在多线程情况下如果使用编码方式实现数据源切换也将导致问题需要进行一些其他处理。 最后补充说明想表达的由于官网文档是付费的不付费的话许多问题只能搜索寻找解决方法比较麻烦因此请根据自身业务情况选择使用本框架或其他框架。
http://www.hkea.cn/news/14342828/

相关文章:

  • 国内做网站建设知名的公司wordpress search sql
  • 长沙手机网站建设公司网站建设的规划和设计
  • 仿糗事百科网站安徽制作网站
  • 制作一个网站需要多少钱广告在线设计
  • 怎么做一考试网站设计公司宣传文案
  • wordpress电子商务网站插件用ps怎么做网站效果图
  • 网站策划哪里找怎么选择赣州网站建设
  • 纺织面料做哪个网站好wordpress wp-polls
  • 福建省建设厅网站 企业高德地图怎么没有菲律宾位置
  • 福州网站建设哪家好您与此网站建立的连接不安全
  • 惠州城乡住房建设厅网站移动4G网站建设
  • 养殖网站 模板在线商城app下载
  • 安徽建站公司网络工程师工资一般多少的
  • 如何建设自己网站wordpress标签生成图片
  • 网站 多少篇文章才能上线公司官网查询
  • 域名转出过程网站能打开吗江苏建设机械网站
  • 建设网站实施条件网站建设开发简介
  • 怎做卖东西的网站wordpress mysqli
  • 网站右侧浮动广告学习网站建设优化
  • 完整的网站开发流程英文网站设计哪里好
  • 东莞品托网站建设网络营销实务
  • 百度推广建站平台wordpress模版如何使用
  • 绿色建筑网站wordpress to phonegap
  • 做网站的的广告词泉州市城乡和住房建设网站
  • 网站开发哪里好淘宝客网站素材
  • 免费发布信息网站建站平台代理
  • 做网站主机电脑千锋教育培训多少钱
  • vue2.0网站开发h5游戏源码网
  • php 网站开发收费第三方平台做网站网站
  • 建设联结网同类网站做网站需要会什么条件