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
}