1.整合MyBatis-Plus背景
【分布式】---基于nacos、OpenFeign构建的微服务抽奖系统后台小案例本文基于微服务抽奖系统的后台交换持久层MyBatis,以整合MyBatis-Plus替换原MyBatis框架为目的进行了整合说明。
基于
1.1.为什么要使用MP
MyBatis-plus的jar包的基础包括基于MyBatis的基本jar,是基于MyBatis的进一步扩展,像使用JPA一样,创建基本的xml和注释sql可以使用注释来完成基本表和PoJo之间的映射关系。
2.基于抽奖系统整合MyBatis-Plus
基于provider-product6700服务器端添加配置。
2.1.配置pom依赖
。! --mybatis-plus插件-
从属关系
groupIdcom.baomidou/groupId
artifactidmybatis-plus-boot -启动程序/故障id
版本3.3.2 /版本
/从属关系
2.2.对应的application.yml配置
#mybatis-plus配置集成mybatis-plus:
配置映射程序映射文件
映射器位置3360类路径: /我的基本/映射器/*.XML
设置Mybatis数据返回类型别名(默认别名为类名) ) ) )。
类型别名-软件包3360 com.fengye.spring cloud.entities
配置:
# #自动驼峰命名
地图-非核心-电子邮件-案例:假
# #控制台打印日志调试的设置
记录:
等级:
com.JD.mapper : debug
2.3.修改Mapper与Service实现
基于MyBatis-Plus实现了mapper层直接继承BaseMapper,无需编写基本的sql语句,实现了基本的添加删除检查操作。 在ServiceImpl中调用也非常方便,只需要直接调用简单的内置方法即可。映射器:
@存储库
publicinterfaceproductmapperextendsbasemapperproduct {
服务impl :
@服务
publicclassproductserviceimplimplementsproductservice {
@自动无线
私有生产经理;
@Override
publicproductgetproductbyid (集成器标识) {
returnproductmapper.selectbyid (id;
}
@Override
使用publiclistproductgetproductlist (
returnproductmapper.select列表(空值;
}
@Override
公共安全产品{2}
returnproductmapper.insert (产品;
}
}
2.4.启动类上添加@MapperScan扫描
使用此注释可以避免向Mapper层添加@Mapper注释。@SpringBootApplication
@EnableDiscoveryClient
//标记为主开始类,可以在XxxMapper中省略@Mapper注释
@ mappers can (com.fengye.spring云. mapper ) )。
publicclassproviderproductmain 6700 {
publicstaticvoidmain (字符串[ ]数组) {
spring应用程序. run (提供程序产品6700 .类,args );
}
}
2.5.关于数据库表与PoJo类映射
在实际的过程中,为了实现Mapper API调用的自动化CURD,在配置数据库和PoJo实体类的关系时需要进行一些详细的说明。 这些是坑点,也是重点。数据库类POJO :
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel (用户实体类) ) ) ) )。
@tablename(MK_product ) /用于指定表名,如果表名和实体名不一致,则必须使用
公共类产品
{
@ApiModelProperty ('主键id ' ) ) ) ) ) ) ) ) ) ) ) )。
//注意:表的主键中使用@TableId
//value表示数据库中的实际列名,如果实体类属性名与表中的主键列名匹配,则省略value
@ table id (value='产品id ',type=IdType.AUTO )//type指定自我增加战略
私有整合者id; //主键id
@ApiModelProperty (“商品名”
//指定实体类的属性和表的列名之间的对应关系
@ table field (值=' pname ' ) ) ) ) ) ) ) )。
私有字符串产品名称; //商品名
@ApiModelProperty (“当选率”
//@表场(双速率) ) )。
//map-underscore-to-camel-case :如果启用了自动驼峰命名,
//现在将winRate更改为win_rate,然后进行sql软件包查询。 有两种方法可以处理不应对的问题。
//1 .设定@表场(win rate ); 2 .修改map-underscore-to-camel-case : false (不使用驼峰命名方式)。
//@tablefield(value='winrate ',exist=true ) )//exist表示是否存在与数据库表对应的列,表示存在缺省的true
专用浮点双向速率; //当选率--要求用户输入小数点后2位
}数据库表:
支持mybatis-plus配置的自动驼峰匹配命名:
集成mybatis-plus配置
mybatis-plus:
配置映射程序映射文件
映射器位置3360类路径: /我的基本/映射器/*.XML
设置Mybatis数据返回类型别名(默认别名为类名) ) ) )。
类型别名-软件包3360 com.fengye.spring cloud.entities
配置:
# #自动驼峰命名
map-underscore-to-camel-case : false以上是整合MP的主要步骤,整合完成后,项目中就可以实际使用MyBatis-Plus了。