海量数据高并发场景,构建Go+ES8企业级搜索微服务无密分享

#1

download:海量数据高并发场景,构建Go+ES8企业级搜索微服务无密分享

SpringBoot项目的快速集成

假如您的项目曾经配置了MyBatis,那么,您只需求

1.引入mybatis-plus依赖关系来替代mybatis依赖关系。

2.将应用程序配置中的mybatis更改为mybatis-plus。

引见依赖

com.baomidou

mybatis-plus启动程序

最新版本

复制代码

应用程序修正配置

mybatis-plus:

地图绘制者-位置:xxx

执行者类型:简单

配置:

log-impl:org . Apache . ibatis . logging . SLF 4j . SLF 4 jimpl

复制代码

2.2.MyBatis-Plus类的特殊定义

MyBatis-Plus分别为效劳层和映射器层提供了功用扩展。

要运用MyBatis-Plus的内置办法,需求完成MyBatis-Plus的特殊接口。

效劳层

//效劳接口需求继承IService接口。

公共接口UserService扩展IService {

}

//效劳完成类需求继承ServiceImpl接口。

公共类UserServiceImpl扩展ServiceImpl完成UserService {

}

复制代码

映射器层

//需求继承BaseMapper接口

公共接口用户映射程序扩展BaseMapper {

}

复制代码

第三,粗小子

3.1、积垢

关于CRUD,MyBatis-Plus提供了两品种型的接口:效劳层和映射器层。同样的功用,不同的层有不同的办法。

[效劳层]

private finally my service my service;

//保管用户(效劳CRUD)

myService.save(用户);

复制代码

[映射器层]

private finally my mapper my mapper;

//保管用户(映射器CRUD)

myMapper.insert(用户);

复制代码

用法示例

//单个查询

user user = user mapper . selectbyid(id);

//批量查询

list users = user mapper . selectbatchids(arrays . as list(1,2,3));

//条件查询

HashMap map = new HashMap();

Map.put(“名”,“十年”);

map.put(《年龄》,12);

user mapper . selectbymap(map);

复制代码

更多操作

MyBatis-Plus官方文档-CRUD

3.2.条件结构函数

Mybatis提供了QueryWrapper,允许我们定制更复杂的sql查询条件。

不支持也不同意在RPC调用中传输包装。

包装纸很重。

传输包装器能够比作你的控制器用map接纳值(开发一段时间,维护火葬场)

正确的RPC呼叫姿态是写一个DTO停止传输,然后被叫方依据DTO停止相应的操作。

我们回绝承受任何问题,以至公关有关的RPC传输包装错误。

用法示例

query wrapper wrapper = new query wrapper();

wrapper.isNotNull("name ")

。ge("age ",12) //年龄小于12

。notLike(“name “,” e”) //并且name not like“% e %”

。likeRight(“name “,” est”) //和称号like 'est%

。likeLeft(“name “,” est”) //和称号like '%est ’

。inSql("id ","从id < 3的用户当选择id ")//和id in(从id < 3的用户当选择id)

。orderByAsc(" id ");//显现id正序

list users = user mapper . select list(包装器);

复制代码

更多参考

MyBatis-Plus正式文档-条件结构器

3.3.主键战略

Mybatis-Plus提供了多种主键战略。

公共枚举IdType {

AUTO(0),//数据库id递增。

NONE(1),//没有设置主键

输入(2),//手动输入

ASSIGN_ID(3),//默许的全局独一ID(雪花算法)

赋值_ UUID(4);// uuid

私有final int键;

私有IdType(int key) {

this.key = key

}

public int getKey() {

返回this.key

}

}

复制代码

3.3.1.根本用处

比方Mysql数据库,在定义表的时分,能够直接将字段设置为自动递增,这样就能够直接运用IdType。自动执行自动递增。

1.数据库字段设置是自增加的。

2.向实体类添加注释:@TableId(type = IdType。自动)
TableId(type = IdType。AUTO) //这需求与数据库设置分离运用。

私有整数id;

复制代码

3.3.2、输入的运用

关于Postgresql数据库,不支持直接设置字段autoincrement,需求经过设置附加序列来完成,需求用type = IdType来设置。投入

1.在配置类中编写主键战略。

内置支持:

DB2KeyGenerator

H2密钥生成器

KingbaseKeyGenerator

OracleKeyGenerator

PostgreKeyGenerator

配置

公共类MyBatisPlusConfig {

/**

  • postgresql数据库主键生成战略

*/

Bean

公共IKeyGenerator密钥生成器(){

返回新的postgrekey generator();

}

}

复制代码

2.实体类配置序列

//在类上运用@KeySequence来指定序列、数据库类型

KeySequence(value = "seq_user ",dbType = DbType。POSTGRE_SQL)

公共类用户扩展模型{

//在字段上运用@TableId指定数据库字段名和主键战略类型。

TableId(value = "user_id ",type = IdType。输入)

私有整数userId

}