一、配置
pom文件
< dependency>
< groupId> com.baomidou</ groupId>
< artifactId> mybatis-plus-boot-starter</ artifactId>
< version> 3.4.0</ version>
</ dependency>
配置数据源
spring :
datasource :
type : com.alibaba.druid.pool.DruidDataSource
driver-class-name : com.mysql.cj.jdbc.Driver
url : jdbc: mysql: //localhost: 3306/test? useUnicode=true&characterEncoding =utf8&zeroDateTimeBehavior =convertToNull&useSSL =false&serverTimezone =GMT%2B8
username : root
password : root
配置分页插件
@Configuration
@MapperScan ( "com.lmt.**.mapper.**" )
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor ( ) {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor ( ) ;
interceptor. addInnerInterceptor ( new PaginationInnerInterceptor ( DbType. MYSQL) ) ;
return interceptor;
}
@Bean
public ConfigurationCustomizer configurationCustomizer ( ) {
return configuration - > configuration. setUseDeprecatedExecutor ( false ) ;
}
}
二、数据库
三、Entitiy
@Data
public class User {
@TableId (
value = "id" ,
type = IdType. ASSIGN_ID
)
private Long id;
@TableField (
value = "username"
)
private String username;
@TableField (
value = "password"
)
private String password;
}
@Data
@TableName ( "`order`" )
public class Order {
@TableId (
value = "id" ,
type = IdType. ASSIGN_UUID
)
private String id;
@TableField ( "dept_name" )
private String deptName;
}
四、mapper
public interface OrderMapper extends BaseMapper < Order> {
}
public interface UserMapper extends BaseMapper < User> {
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
< mapper namespace = " com.lmt.mybatis_plus.mapper.OrderMapper" >
</ mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
< mapper namespace = " com.lmt.mybatis_plus.mapper.UserMapper" >
</ mapper>
注意点:
@TableId
id为主键 类型为Idtype.ASSIGN_ID ASSIGN:分配ID(主键类型为Number(LONG和Interger)或者String(3.3.0以后) 使用接口IdentifierGenerator 的方法nextId (默认实现为DdfaultIdentifuerGenerator 雪花算法 如果使用 IdType.ASSIGN_UUID 策略,则会自动生成不含中划线的 UUID 作为主键。主键类型为 String,对应 MySQL 的表字段为 VARCHAR(32) 提示:该策略使用接口 IdentifierGenerator 的方法 nextUUID(默认的default
@TableName
指明向对应的表名 当表名与某关键字冲突时可以用``括起来,否则会报错 例如:上边的order与数据库order冲突,调用时会报错,因此 在实体类上添加注解 @TableField同理
五、自定义ID生成器
方式一:声明为Bean供Spring扫描注入
@Component
public class CustomIdGenerator implements IdentifierGenerator {
@Override
public Long nextId ( Object entity) {
String bizKey = entity. getClass ( ) . getName ( ) ;
long id = . . . . ;
return id;
}
}
方式二:使用配置类
@Bean
public IdentifierGenerator idGenerator ( ) {
return new CustomIdGenerator ( ) ;
}
方式三:通过MybatisPlusPropertiesCustomizer自定义
@Bean
public MybatisPlusPropertiesCustomizer plusPropertiesCustomizer ( ) {
return plusProperties - > plusProperties. getGlobalConfig ( ) . setIdentifierGenerator ( new CustomIdGenerator ( ) ) ;
}