由于公司框架需要升级为saas系统 看了许多没有觉得太合适的于是决定自行搭建一个

我是java开发 所以我准备使用springboo t前端使用vue顺便学习下前端

首先多租户系统 尽量要把数据隔开 随后选型了mybatisplus dynamic的多数据源 官方文档

好了 开发开始

首先创建一个基础项目随后导入依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.3.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.demo</groupId><artifactId>saas</artifactId><version>0.0.1-SNAPSHOT</version><name>saas</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><!--spring--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><!--lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><!--多数据源--><dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot-starter</artifactId><version>3.3.1</version></dependency><!--mybatis-plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.3.1</version></dependency><!--mybatis-plus代码生成器--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.3.1</version></dependency><!--数据连接池--><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.4</version></dependency><!--p6spy sql打印--><dependency><groupId>p6spy</groupId><artifactId>p6spy</artifactId><version>3.9.1</version></dependency><!--hutool utils集合--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.5.8</version></dependency><!--freemarker--><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.30</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.10</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource></resources></build></project>

依赖版本不需要太新 否则会导致不能确定的问题 我遇到了Invalid bound statement (not found)这个问题

创建两个数据库用来测试动态数据库 每个数据库中创建个表来验证

首先创建数据库1 随后建表

CREATE TABLE `sys_user` (`ID` bigint(20) NOT NULL AUTO_INCREMENT,`USERNAME` varchar(255) DEFAULT NULL COMMENT '用户名',`PASSWORD` varchar(255) DEFAULT NULL COMMENT '密码',`PHONE_NUMBER` varchar(255) DEFAULT NULL COMMENT '手机号',`DESCRIPTION` varchar(500) DEFAULT NULL COMMENT '个人简介',`STATUS` tinyint(2) DEFAULT NULL COMMENT '状态',`DEPT_ID` bigint(20) DEFAULT NULL COMMENT '机构id',`COMPANY_ID` bigint(20) DEFAULT NULL COMMENT '公司ID',`CREATE_TIME` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',`UPDATE_TIME` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT=' 用户表';

数据2同理

这里贴一下yml的配置

server:port: 8088spring:datasource:druid: #数据库连接池 查看sqlstat-view-servlet:enabled: trueloginUsername: adminloginPassword: 123456dynamic:
#      p6spy: true # 默认false,可以单个数据源配置primary: master #设置默认的数据源或者数据源组,默认值即为masterstrict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候会抛出异常,不启动则使用默认数据源.datasource:master:p6spy: falseurl: jdbc:mysql://192.168.1.136:3306/saas?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=CTTusername: rootpassword: admindriver-class-name: com.mysql.cj.jdbc.Driver # 3.2.0开始支持SPI可省略此配置no1:p6spy: falseurl: jdbc:mysql://192.168.1.136:3306/saas1?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=CTTusername: rootpassword: admindriver-class-name: com.mysql.cj.jdbc.Driver # 3.2.0开始支持SPI可省略此配置#mybatis plus 设置
mybatis-plus:type-aliases-package: com.demo.saas.system.entitymapper-locations: classpath:com/demo/saas/system/mapper/xml/*Mapper.xml

然后写两个接口同时执行同样的查询语句

写两个api 使用postman测试一下

返回了不同的数据 ok 是我们想要的结果 今天就到这里

从零开始搭建saas系统(1)相关推荐

  1. 从零开始搭建Ubuntu系统教程

    由于最近新购入联想小新Pro16,所以考虑把之前的笔记本做成Ubuntu系统,这样方便利用双系统进行工作. 本文主要介绍了系统的安装以及后续一些必备软件的安装,以后遇到此类情况,可以快速响应. 文章目 ...

  2. 如何从零开始搭建智能外呼系统

    前言:本文作者是咱们"AI产品经理大本营"团员@何静 ,她用非常接地气的文字介绍了智能外呼系统的必备入门信息,对于不是这个细分领域的AI从业者来说,非常值得一看. 1 序言 随着人 ...

  3. 从零开始搭建智能Ai外呼系统?

    前言:本文作者是咱们"AI产品经理大本营"团员@何静 ,她用非常接地气的文字介绍了智能外呼系统的必备入门信息,对于不是这个细分领域的AI从业者来说,非常值得一看. 1--序言 随着 ...

  4. 如何从零开始搭建智能外呼系统?

    本文作者是"AI产品经理大本营"团员何静 ,她用非常接地气的文字介绍了智能外呼系统的必备入门信息,对于不是这个细分领域的AI从业者来说,非常值得一看. 一.序言 随着人工智能技术的 ...

  5. 乐视秒杀架构解读:从零开始搭建百万每秒订单系统

    http://dbaplus.cn/news-21-475-1.html 在各种秒杀活动大行其道的今天,订单系统的性能与稳定日益重要.乐视集团作为这一技术的佼佼者,在多次的电商狂欢节中都能抢占商机.拔 ...

  6. 从零开始搭建系统3.2——微服务注册中心开发及部署

    从零开始搭建系统3.2--微服务注册中心开发及部署 转载于:https://www.cnblogs.com/provence666/p/8638586.html

  7. 外卖优惠券返利系统外卖返利公众号搭建cps系统小程序SaaS源码

    外卖优惠券返利系统外卖返利公众号搭建cps系统小程序SaaS源码 美团/饿了么外卖CPS联盟返利公众号小程序裂变核心源码 源代码地址 https://gitee.com/caonima008/coup ...

  8. 淘宝电商项目落地,从零开始搭建亿级系统架构笔记

    电商亿级系统架构设计笔记,分为:基础篇.数据库篇.缓存篇.消息队列篇.分布式服务篇.维护篇.实战篇.通过学习这份笔记,你可以系统的学会从零开始搭建亿级系统架构.其中每篇中又有具体的设计实施的笔记供大家 ...

  9. 带api的php探针,从零开始搭建前端监控系统(一)——web探针sdk

    前言 本系列文章旨在讲解如何从零开始搭建前端监控系统. 项目已经开源 项目地址: 您的支持是我们不断前进的动力. 喜欢请start!!! 喜欢请start!!! 喜欢请start!!! 本文是该系列第 ...

最新文章

  1. 第二章 选择符和属性
  2. LeetCode 530二叉搜索树的最小绝对值差-简单
  3. 多线程线程池的基本创建,使用方法
  4. 人工智障学习笔记——强化学习(5)DRL与DQN
  5. java中初始化块、静态初始化块和构造方法
  6. jsp- el表达式
  7. 用c语言编写游戏中秋博饼,描写中秋节博饼的作文600字
  8. QGIS3.20 制作栅格动画
  9. 2021年「通信安全员」通用基础及岗位技能(通信安全员)考试资料
  10. 语雀小记初长成:碎片化信息记录工具
  11. mysql空洞_Mysql 表空间和 数据页空洞
  12. ML - 线性回归(Linear Regression)
  13. 数字信息时代中国面临两个机遇
  14. BUUCTF MD5
  15. 【微信小程序】04-公共文件引入
  16. Python中的pillow(PIL)
  17. 大学linux操作系统,大学信息技术(Linux操作系统及其应用)
  18. 【C语言进阶】带你深度剖析那些常见的字符函数(一)
  19. 大消费企业怎样做数字化转型?
  20. 14-排序优化:如何实现一个通用的、高性能排序函数?

热门文章

  1. 游戏开发54课 阴影
  2. 实现移动端touch事件的横向滑动列表效果
  3. php gd2图片保存,PHP使用GD2库生成的图像无法输出的解决方法
  4. 转:稻盛和夫:经营理念信则有,否则一文不值
  5. 2022年全球与中国医用级工程塑料行业市场需求预测与投资战略规划分析报告
  6. python matplotlib画图报错:Unknown projection ‘3d‘
  7. photoshop2020入门笔记(三)——磨皮
  8. currentStyle与getComputedStyle的用法
  9. Unity Shader - 故障艺术之 - Glitch Art - Split RGB (分离通道颜色的故障效果)
  10. Chinar 祝贺大家2019新年快乐!