常见注解
MybatisPlus实现CRUD的基本原理
MybatisPlus通过扫描实体类,并基于反射获取实体类信息作为数据库表信息
- 类名驼峰转下划线作为表名
- 名为id的字段作为主键
- 变量名驼峰转下划线作为表的字段名
注解
如果不符合上述约定,就需要自己配置,此时就需要用到注解
MybatisPlus中比较常用的几个注解如下:
- @TabieName:用来指定表名
- @Tableld:用来指定表中的主键字段信息.
- @TableField:用来指定表中的普通字段信息
当实体类的名称与表名不一致时,就需要用到@TabieName
如果当主键字段与实体当中的名不一致就需要加@Tableld
IdType有三种
- AUTO:数据库自增长(数据库生成)
- INPUT:通过set方法自行输入(程序员手动设置)
- ASSIGN_ID:分配ID 用接口ldentifierGenerator的方法nextld来生成id,默认突现类为DefaultldentifierGenerator雪花算法(MyBatisPlus生成)
使用TableField常见场景
成员变量与数据库字段名不一致需要使用
成员变量以is开头,且是布尔值
成员变量名与数据库关键字冲突
转义字符
成员变量不是数据库字段
常见配置
MyBatisPlus的配置项继承了MyBatis原生配置和一些自己特有的配置。
如:
一般情况下都是默认的,如果需要更改,可以上官网查看,当然idea也有提示
分页插件
首先,要在配置类中注册MyBatisPlus的核心插件,同时添加分页插件:
package com.itheima.mp.config;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MybatisConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
// 初始化核心插件
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
// 添加分页插件
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
接下来就可以直接使用了
@Test
void testPageQuery(){
int pageNo = 1, pageSize = 2;
Page<User> page = Page.of(pageNo, pageSize);
page.addOrder(new OrderItem("balance",true));
page.addOrder(new OrderItem("id",true));
Page<User> p = userService.page(page);
//总条数
long total = p.getTotal();
//页数
long pages = p.getPages();
//分页结果
List<User> users = p.getRecords();
}
总结
MyBatisPlus使用的基本流程
引入起步依赖
自定义的Mapper基础的BaseMapper
在实体类上添加注解声明 表信息