MyBatis-Plus知识点
官网:https://mp.baomidou.com/
简介:
MyBatis-Plus
(简称MP)是一个MyBatis
的增强工具,在MyBatis
的基础上只做增强不做改变,为简化开发、提高效率而生。
特点(官网):
效率至上:只需简单配置,即可快速进行单表CRUD操作,从而节省大量时间。
丰富功能:代码生成,物理分页、性能分析等功能一应具全。
**无侵入:**只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑。
损耗小:启动即会自动注入基本CURD,性能基本无损耗,直接面向对象操作。
强大的CURD操作:内置通用Mapper、通用Service,仅仅通过少量配置即可实现单表大部分CRUD操作,更有强大的条件构造器,满足各类使用需求。
(剩下的官网自己看,补充:hibernate(数据持久层,Mybatis
之前的一款全自动框架))
需要用的依赖(在SpringBoot
的基础上加):
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3</version>
</dependency>
配置:
在application.yml
配置文件中添加mysql
数据库的相关配置:
spring:
#数据库连接配置
datasource:
url: jdbc:mysql://127.0.0.1:3306/ssm_db?characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
filters: stat
initialSize: 5 #初始化时建立物理连接的个数
maxActive: 20 #最大连接池数量
在Spring Boot启动类中添加@MapperScan
注解。扫描Mapper文件夹:
@SpringBootApplication
@MapperScan("com.ff.back.mapper")
public class BackApplication {
public static void main(String[] args) {
SpringApplication.run(BackApplication.class, args);
}
}
在application.yml
配置文件中添加mybatis-plus
的配置:
mybatis-plus:
type-aliases-package: com.ff.back.bean
mapper-locations: classpath:mapper/*Mapper.xml
configuration:
map-underscore-to-camel-case: true
cache-enabled: true
做法:
让我们的Mapper层(接口层)继承BaseMapper
这个接口。BaseMapper
中定义了许多单表操作的方法,可以直接使用。
注解:
@TableName(value = "user")
:用在实体类上,指定表名。
@TableId
:跟数据库中表的主键对应,属性:type(AUTO(数据库ID自增,前提数据库支持主键自增,如orical数据库
不支持自增),NONE(无状态),INPUT(自行set主键值),ASSIGN_UUID
(在java
中生成主键))
@TableId(type = IdType.AUTO)
private Integer id;
@TableFidld
:数据库中的列与实体类中的属性对应。
@TableFidld(value = "acc")
private String account;
//数据库中的acc跟account属性进行映射
Lombok
组件:
以前的java
项目中,充斥着太多不友好的代码:POJO
的getter/setter/toString
;异常处理;I/O流的关闭操作等,这些样板代码既没有技术含量,又影响着代码的美观,Lombok
应运而生。
添加的jar包:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
<scope>provided</scope>
</dependency>
@Data
:Mybatis-Plus
中,使用Lombok
简化代码,会自动生成get(),set()方法。
@AllArgsConstructor
:Mybatis-Plus
中,生成全部参数的构造方法。
@NoArgsConstructor
:Mybatis-Plus
中,生成无参的构造方法。