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

做影视网站的软件聚名网认证

做影视网站的软件,聚名网认证,肇庆网站制作,无锡网站策划文章目录 前言 一、Mybatis-Plus是什么#xff1f; 二、多数据源是什么#xff1f; 三、使用步骤 1. 新建一个SpringBoot项目 2. 引入必要的MyBatis架包 3. 新建两个数据库及两张表 3.3.1 新建数据库#xff1a;DB_A#xff0c;并创建一张数据表alarm_kind#xff0c;以及…文章目录 前言 一、Mybatis-Plus是什么 二、多数据源是什么 三、使用步骤 1. 新建一个SpringBoot项目 2. 引入必要的MyBatis架包 3. 新建两个数据库及两张表 3.3.1 新建数据库DB_A并创建一张数据表alarm_kind以及一些测试数据。 3.3.2 同样再建一个数据库DB_B并创建一张数据表test以及一些测试数据。 4. 修改配置文件application.yml 5. 编码 5.1 entity 实体类 5.2 mapper接口 5.3 service服务接口 5.4 service服务实现 6. 测试及验证  总结 前言 在日常大型项目中经常会遇到分库分表的数据库设计咱们普通的SpringBoot 单体项目通过默认配置及注解可以很容易实现对单个数据库的操作管理但遇到需要多个数据库操作可能会比较麻烦因此咱们今天主要介绍如何使用MyBatis-Plus提供的一个多数据源动态加载组件简单轻松实现在单个项目中实现对多个数据库的操作管理。 关键词SpringBoot 、MyBatis、MyBatis-Plus、多数据源 一、Mybatis-Plus是什么 Mybatis-Plus是一个Mybatisopens new window的增强工具在Mybatis的基础上只做增强不做改变为简化开发。 二、多数据源是什么 多数据源是指在分布式环境或集群环境下为不同的数据库如MySQL、Oracle、SQLServer等配置数据源以便在项目中能够随意切换以获取数据。这种配置方式允许应用程序根据需要连接到不同的数据库以实现特定的业务需求如数据隔离、水平扩展、读写分离等。 三、使用步骤 1. 新建一个SpringBoot项目 可以通过Ide工具向导建立,这里不详细描述了。 2. 引入必要的MyBatis架包 在项目的pom.xml加入如何内容 !-- mysql --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.18/version/dependency!-- 连接池 --dependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion1.1.24/version/dependency!-- mybatis plus --dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion${mybatisplus-spring-boot-starter.version}/version/dependencydependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus/artifactIdversion3.4.2/version/dependencydependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-generator/artifactIdversion3.4.1/version/dependencydependencygroupIdorg.apache.velocity/groupIdartifactIdvelocity-engine-core/artifactIdversion2.3/version/dependencydependencygroupIdcom.baomidou/groupIdartifactIddynamic-datasource-spring-boot-starter/artifactIdversion3.5.0/version/dependency 3. 新建两个数据库及两张表 3.3.1 新建数据库DB_A并创建一张数据表alarm_kind以及一些测试数据。 CREATE DATABASE IF NOT EXISTS DB_A /*!40100 DEFAULT CHARACTER SET utf8mb4 */; USE DB_A;DROP TABLE IF EXISTS alarm_kind; CREATE TABLE IF NOT EXISTS alarm_kind (id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 主键ID,type_no varchar(255) DEFAULT NULL COMMENT 类型编号,type_name varchar(255) DEFAULT NULL COMMENT 类型名称,PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT23 DEFAULT CHARSETutf8mb4 COMMENT报警类型字典表;DELETE FROM alarm_kind; INSERT INTO alarm_kind (id, type_no, type_name) VALUES(1, Powon, 市电),(2, Baton, UPS电源),(3, Move, 位移),(4, Alarm, 震动),(5, Cut, 切割检测),(6, Smoke, 烟雾),(7, LBJ, 声光),(8, HW, 红外),(9, Box4_NoPutTimeOut, 四号柜款箱未放入); 3.3.2 同样再建一个数据库DB_B并创建一张数据表test以及一些测试数据。 CREATE DATABASE IF NOT EXISTS DB_B /*!40100 DEFAULT CHARACTER SET utf8mb4 */; USE DB_B;DROP TABLE IF EXISTS test; CREATE TABLE IF NOT EXISTS alarm_kind (id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 主键ID,type_no varchar(255) DEFAULT NULL COMMENT 类型编号,type_name varchar(255) DEFAULT NULL COMMENT 类型名称,PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT23 DEFAULT CHARSETutf8mb4 COMMENT报警类型字典表;DELETE FROM test; INSERT INTO test (id, type_no, type_name) VALUES(1, Powon, 测试1),(2, Baton, 测试2),(3, Move, 测试3); 4. 修改配置文件application.yml server:port: 8085 #服务端口配置 spring:application:name: ms-basedatasource:dynamic:primary: baseA #默认加载的数据库是DB_Astrict: falsedatasource:baseA:driver-class-name: com.mysql.cj.jdbc.Driver #数据源配置url: jdbc:mysql://127.0.0.1:13306/DB_A?serverTimezoneGMT%2B8useSSLfalseusername: rootpassword: data123456!type: com.alibaba.druid.pool.DruidDataSource #连接池配置max-idle: 10 #No operations allowed after connection closed错误原因及解决max-wait: 10000min-idle: 5initial-size: 5validation-query: SELECT 1test-on-borrow: falsetest-while-idle: truetime-between-eviction-runs-millis: 18800baseB:driver-class-name: com.mysql.cj.jdbc.Driver #数据源配置url: jdbc:mysql:///127.0.0.1:13306/DB_B?serverTimezoneGMT%2B8useSSLfalseusername: rootpassword: data123456!type: com.alibaba.druid.pool.DruidDataSource #连接池配置max-idle: 10 #No operations allowed after connection closed错误原因及解决max-wait: 10000min-idle: 5initial-size: 5validation-query: SELECT 1test-on-borrow: falsetest-while-idle: truetime-between-eviction-runs-millis: 18800 5. 编码 5.1 entity 实体类 AlarmKind.java import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import java.time.LocalDateTime; import java.io.Serializable;import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode;/*** p* 报警类型字典表* /p** since 2022-05-24*/ Data EqualsAndHashCode(callSuper false) public class AlarmKind implements Serializable {private static final long serialVersionUID 1L;/*** 主键ID*/TableId(value id, type IdType.AUTO)private Long id;/*** 类型编号*/private String typeNo;/*** 类型名称*/private String typeName; } Test.java import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import java.time.LocalDateTime; import java.io.Serializable;import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode;/*** p* 测试表* /p**/ Data EqualsAndHashCode(callSuper false) public class Test implements Serializable {private static final long serialVersionUID 1L;/*** 主键ID*/TableId(value id, type IdType.AUTO)private Long id;/*** 类型编号*/private String typeNo;/*** 类型名称*/private String typeName; } 5.2 mapper接口 AlarmKIndMapper.java import com.xxxx.rest.entity.AlarmKind; import com.baomidou.mybatisplus.core.mapper.BaseMapper;/*** p* 报警类型字典表 Mapper 接口* /p**/ public interface AlarmKindMapper extends BaseMapperAlarmKind {ListAlarmKind getAll(); } TestMapper.java import com.xxxx.rest.entity.Test; import com.baomidou.mybatisplus.core.mapper.BaseMapper;/*** p* 测试表 Mapper 接口* /p**/ public interface TestMapper extends BaseMapperTest {ListTest getAll(); } 5.3 service服务接口 IAlarmKIndService.java import com.xxx.rest.entity.AlarmKind; import com.baomidou.mybatisplus.extension.service.IService;import com.xianban.rest.model.msbase.vo.platform.BaseLineVO;import java.util.List;/*** p* 报警类型表 服务类* /p**/ public interface IAlarmKindService extends IServiceAlarmKind {ListAlarmKind getAll(); } ITestService.java import com.xxx.rest.entity.Test; import com.baomidou.mybatisplus.extension.service.IService;import com.xianban.rest.model.msbase.vo.platform.BaseLineVO;import java.util.List;/*** p*测试表 服务类* /p**/ public interface ITestService extends IServiceTest {ListTest getAll(); } 5.4 service服务实现 AlarmKindServiceImpl.java import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.xxxx.rest.entity.AlarmKind; import com.xxxx.rest.mapper.AlarmKindMapper; import com.xxxx.rest.service.IAlarmKindService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional;import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.List; import java.util.stream.Collectors;/*** p* 报警类型表 服务实现类* /p**/ Service DS(baseA) //这个注解是指定操作哪个数据源如果没有这个注解则代表操作配置文件中的主数据源 public class AlarmKindServiceImpl extends ServiceImplAlarmKindMapper, AlarmKind implements IAlarmKindService {Resourceprivate AlarmKindMapper mapper;Overridepublic ListAlarmKind getAll() {QueryWrapperAlarmKind wrappernew QueryWrapper();return mapper.selectList(wwapper);} } TestServiceImpl.java import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.xxxx.rest.entity.Test; import com.xxxx.rest.mapper.TestMapper; import com.xxxx.rest.service.ITestService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional;import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.List; import java.util.stream.Collectors;/*** p* 测试表 服务实现类* /p**/ Service DS(baseB) //这个注解是指定操作哪个数据源如果没有这个注解则代表操作配置文件中的主数据源 public class TestServiceImpl extends ServiceImplTestMapper, Test implements ITestService {Resourceprivate TestMapper mapper;Overridepublic ListTest getAll() {QueryWrapperTest wrappernew QueryWrapper();return mapper.selectList(wwapper);} } 6. 测试及验证  编写测试Controller RestController RequestMapping(/test) CrossOrigin Api(tags 手动测试接口管理) public class TestController {Resourceprivate IAlarmKindService alarmKindService;Resourceprivate ITestService testService;//查询报警类型数据GetMapping(/getAlarmKindList)public ResponseEntityObject getAlarmKindList(){ return getRespOk(alarmKindService.getAll()); } //查询测试表数据GetMapping(/getTestList)public ResponseEntityObject getTestList(){ return getRespOk(testService.getAll()); }protected ResponseEntityObject getRespOk(Object resData) {return new ResponseEntity(resData, HttpStatus.OK); }} 启动项目 在浏览器访问 1.报警类型信息接口地址http://localhost:8085/test/getAlarmKindList如果返回结果说明正确 2.测试信息接口地址http://localhost:8085/test/getTestList如果返回结果说明正确 总结 通过以上内容分析其实关键就引入架包、修改配置文件、服务的实现类中增加DS(配置文件中定义的数据源名称)代码改动可以说非常小。
http://www.hkea.cn/news/14373736/

相关文章:

  • 做网站是用的那个开发软件网站虚拟主机1g
  • 怎样用电脑做网站服务器部门网站建设怎么做
  • 西安网站建设专家岳阳网站建设哪家好
  • 医院做网站的风格vps推荐
  • 淄博网站制作多样定制徐州模板厂
  • 网站后台怎么换图片重庆装修公司前十强
  • 成都网站开发 Vr网络搭建的基本流程
  • 个人互动网站广州响应式网站咨询
  • 如何自己开发一个网站网络广告推广服务
  • 山东建设官方网站网络工程师自学教程
  • 企业网站广告图片轮播代码中国设计之窗官方网站
  • 资溪做面包招聘的网站代运营公司哪个地方好
  • 网站线上投票怎样做企业服务官网模板
  • 制作html5网站找工作哪个网站好智联招聘
  • 温州网站快速排名怎么制作网站外链
  • 网站制作学什么成都智 小程序开发
  • 网站建设维护问题怎么使用微信公众号
  • 如何做网站备案软件开发商网站
  • 泉州百度网站快速优化网站域名去哪买
  • 手机网站样例在线制作图片生成器小程序
  • 接做网站的私活怎么报价南京网站设计是什么
  • 祝贺公司网站上线做电影网站需要用什么空间
  • 网站做微信登录二次开发平台
  • 建设门户网站发展前景2018网站推广途径有哪些
  • 京东网站建设目标网站设计服务表
  • 虚拟主机WordPress建站东营做网站优化
  • 网站建设及模板使用教程优秀网站的链接
  • 网站在工信部备案查询免费外链网盘
  • 电子商城网站开发教程如何对自己建设的网站进行推广
  • 网站建设合同的要素网站搭建app