MP介绍:
基于mybits开发的一个持久性框架,在mybatis基础上进行增强,简化开发,提高效率.
官网:https://baomidou.com/
优势:
1无侵入: 只做增强不做改变
2强大的crud操作:内置通用mapper
3支持lambda:编写查询条件无需担心字段写错
4支持主键自动生成
5内置分页插件
1.开发环境搭建:
创建数据库和表
2.项目环境搭建
创建项目,引入依赖,启动类,配置文件(application.yml )
配置文件:
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/mybatisplus_db?serverTimezone=UTC
username: root
password: 1234
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #开启mp日志,将sql输出到控制台
将maven改为springboot
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.0</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
进行分页查询时候得先加配置类
@Configuration
public class MPConfiguration {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
//添加分页拦截器,实现分页查询功能
mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return mybatisPlusInterceptor;
}
}
常用注解:
@TableName
用于解决实体类和表名名称不一致问题
@TableField
用于解决实体类属性和字段名不一致问题
@TableId
加载主键上表示实体类中的属性哪个是主键,说明了主键的生成策略
属性
value:设置数据库主键字段名称,如果属性名和字段名一致,可以省略此属性
type:设置主键属性的生成策略,值参照IdType枚举值
-
AUTO(0):使用数据库id自增策略控制id生成
-
NONE(1):不设置id生成策略
-
INPUT(2):用户手工输入id
-
ASSIGN_ID(3):雪花算法生成id(可兼容数值型与字符串型)
-
ASSIGN_UUID(4):以UUID生成算法作为id生成策略
可以再application.yml中进行配置id生成策略
mybatis-plus:
global-config:
db-config:
id-type: assign_id #全局设置主键生成策略
优先级的话tableID type 指定要比全局优先级高
在service层操作mp:
① 业务接口继承 MP 提供的 IService 接口
② 业务实现类继承 MP 提供的 ServiceImpl 类并且实现上边的接口
例子:
1 public interface UserService extends IService<User> {
}
@Service
2 public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}
Mybatis_Plus 新特性
CRUD
MP扩展功能