[TOC]前言版本关系Spring Cloud Alibaba Version:2.2.9.RELEASESpring Cloud Version:Spring Cloud Hoxton.SR12Spring Boot Version:2.3.12.RELEASE组件版本关系Sentinel Version:1.8.5Nacos Version:2.1.0RocketMQ Version:4.9.4Seata Version:1.5.2这个版本组合是目前找到的最新的版本组合。本人使用的为IDEA 2022.3版本,有的地方和之前版本的有所不同。一、Nacos注册中心示意图注册中心主要有三...
[TOC]前言本次通过SpringBoot+MyBatisPlus架构,将MySQL数据库替换成国产达梦数据库。注意:此次改造的项目同时兼容MySQL和达梦数据库。一、部署注意事项因为MySQL是大小写不敏感的,DM数据库支持大小写敏感和不敏感,默认是大小写敏感。在进行数据库初始化参数设置时,记得将【字符串比较大小写敏感】的勾给去掉。注意:初始化完成之后该参数是不支持再次修改的,切记去掉。二、数据迁移MySQL迁移到达梦数据库达梦官方文档:https://eco.dameng.com/document/dm/zh-cn/start/dm-create-tablespace.html达梦的...
[TOC]一、Nacos概述Nacos是Dynamic Naming and Configuration Service的首字母简称,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台,是阿里巴巴的新开源项目 。Nacos主要提供三种功能:服务注册与发现、动态配置服务、动态DNS服务。Nacos = Eureka+Config+Bus服务(Service)是 Nacos 世界的一等公民。Nacos 支持几乎所有主流类型的“服务”的发现、配置和管理:Kubernetes ServicegRPC & Dubbo RPC ServiceSpring Cloud RESTful S...
[TOC]一、介绍MybatisX是一款基于 IDEA 的快速开发插件,方便在使用mybatis以及mybatis-plus开始时简化繁琐的重复操作,提高开发速率。使用MybatisX的好处节省大量持久层代码开发时间强大的功能为业务编写提供各类支持配置简单,告别各类复杂的配置文件MyBatisX插件用法:https://baomidou.com/pages/ba5b24/二、安装方法打开 IDEA,进入 File -> Settings -> Plugins -> Marketplace,输入 mybatisx 搜索并安装。注意:本人使用的IDEA版本是2022.3版本...
[TOC]一、概述目前在SpringBoot框架基础上多数据源的解决方案大多手动创建多个DataSource,后续方案有三种:继承org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource,使用AOP切面注入相应的数据源 ,但是这种做法仅仅适用单Service方法使用一个数据源可行,如果单Service方法有多个数据源执行会造成误读。通过DataSource配置 JdbcTemplateBean,直接使用 JdbcTemplate操控数据源。分别通过DataSource创建SqlSessionFactory并扫...
[TOC]一、通用枚举1.1 概述MyBatis-Plus中提供了通用枚举,简单来说就是将数据库中的某一字段的代替的含义转换成真实的含义将数据读给用户,用户在存储时也会将真实值转换成代替的数字存入到数据库中。举个例子:用户性别在数据库中存储为1(表示男)、2(表示女)。在读取数据时就会自动将1、2值转换为男或女。这样做是可以有效地节省数据库的存储空间。1.2 添加字段在t_user表中,添加一个性别字段sex。默认值为1,其中存储的值1为男,2为女。将字段添加到is_deleted字段的后面。ALTER TABLE t_user ADD COLUMN sex int(1) NULL DE...
[TOC]一、MyBatis插件机制MyBatis插件就是对Executor、StatementHandler、 ParameterHandler、ResultSetHandler 这四个接口上的方法进行拦截,利用JDK动态代理机制,为这些接口的实现类创建代理对象, 在执行方法时,先去执行代理对象的方法,从而执行自己编写的拦截逻辑。接口说明接口说明Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)MyBatis 的内部执行器,它负责调用 Statement...
[TOC]一、Wrapper条件构造器条件构造器wrapper就是用来封装CRUD方法参数条件的一个接口,其底层有很多的子类,最主要的就是最下面的四个子类:queryWrapper:可以用来删改查updateWrapper:可以在修改操作时不必创建实体类对象的操作LambdaQueryWrapper和LambdaUpdateWrapper:则是在字段参数的调用上进行了升级,其他都一样因为增删改查中的增加记录不需要条件即可完成,所以增加方法无需条件构造器wrapper,其他的删改查则是有这个条件构造器参数的。Wrapper : 条件构造抽象类,最顶端父类AbstractWrapper:用于...
[TOC]一、@TableName经过以上的测试,在使用MyBatis-Plus实现基本的CRUD时,我们并没有指定要操作的表,只是在 Mapper接口继承BaseMapper时,设置了泛型User,而操作的表为user表。由此得出结论,MyBatis-Plus在确定操作的表时,由BaseMapper的泛型决定,即实体类型决定,且默认操作的表名和实体类型的类名一致。1.1 问题若实体类类型的类名和要操作的表的表名不一致,会出现什么问题?我们将表user更名为t_user,测试查询功能程序抛出异常,Table ‘mybatis_plus.user’ doesn’t exist,因为现在的表...
[TOC]一、BaseMapper通用 CRUD 封装BaseMapper接口,为 Mybatis-Plus 启动时自动解析实体表关系映射转换为 Mybatis 内部对象注入容器泛型 T 为任意实体对象参数 Serializable 为任意类型主键 Mybatis-Plus 不推荐使用复合主键约定每一张表都有自己的唯一 id 主键对象 Wrapper 为 条件构造器public interface BaseMapper<T> extends Mapper<T> { /** * 插入一条记录 * * @param entity...