添加依赖
- mybatis-plus
- mysql驱动
- druid数据库连接池【可选】
1 | <dependency> |
配置数据源
使用druid数据源
1
2
3
4
5
6
7spring:
datasource:
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/reggie?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
username: root
password: root使用默认数据源
1
2
3
4
5
6spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/reggie?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
username: root
password: root
当我们在Mapper包下创建接口时,为了表示此接口为Mapper接口。
有两种选择:
在每个Mapper接口上使用@Mapper注解。
1
2
3
public interface UserMapper extends BaseMapper<User> {
}在启动类上配置Mapper扫描
1
2
3
4
5
6
7
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
}
}
设置表名的映射规则
默认情况下MP操作的表名就是实体类的类名,但是如果表名和类名不一致就需要我们自己设置映射规则。
如果不进行表名映射规则的设定,则需要数据库的表名和实体类名要保持一致。
如果不一致,有两种设置方法
单独设置
可以在实体类的类名上加上@TableName注解进行标识。
如果表名是tb_user,而实体类名是User则可以使用以下写法。
1
2
3
4
public class User {
//....
}全局设置
如果数据库中的表,都有一个公共的前缀
比如:
数据库表:sys_user,sys_menu,sys_dish…
实体类:User,Menu,Dish
然后就可以在配置文件中,全局设置表名前缀
1
2
3
4
5mybatis-plus:
global-config:
db-config:
#表名前缀
table-prefix: sys_
设置主键生成策略
Mybatis Plus 为我们提供了三种设置 主键生成策略的方式。它们的优先级顺序是:局部注解 > 全局 > 默认(雪花算法)。
Mybatis Plus如果不做任何主键策略配置,默认使用的是雪花算法。该策略会根据雪花算法生成主键ID,主键类型为Long或String
局部注解
我们可以在实体类的Id字段上使用@TableId注解,例如
1
2
3
4
5
6
7
8
public class User {
private Long id;
//.....
}全部主键策略定义在了枚举类
IdType
中,IdType
有如下的取值AUTO
数据库ID自增,依赖于数据库。该类型请确保数据库设置了 ID自增 否则无效
NONE
未设置主键类型。若在代码中没有手动设置主键,则会根据主键的全局策略自动生成(默认的主键全局策略是基于雪花算法的自增ID)
INPUT
需要手动设置主键,若不设置。插入操作生成SQL语句时,主键这一列的值会是
null
。ASSIGN_ID
当没有手动设置主键,即实体类中的主键属性为空时,才会自动填充,使用雪花算法
ASSIGN_UUID
当实体类的主键属性为空时,才会自动填充,使用UUID
全局配置
1
2
3
4
5mybatis-plus:
global-config:
db-config:
# id生成策略 auto为数据库自增
id-type: auto
设置字段映射规则
默认情况下MP会根据实体类的属性名去映射表的列名。
也就是说,在什么都不配置的情况下,实体类的属性名和映射表的列名必须一致。
如果不一致,可以使用@TableField
来设置映射关系。例如:
1 | //列名为address,字段名为addressStr |
设置字段和列名的驼峰映射
默认情况下MP会开启字段名列名的驼峰映射, 即从经典数据库列名 A_COLUMN(下划线命名) 到经典 Java 属性名 aColumn(驼峰命名) 的类似映射 。
属性名/类名 | 列名/表名 |
---|---|
userName | user_name |
passWord | pass_word |
我们可以在配置文件中关闭这中映射
1 | mybatis-plus: |
日志
配置方式如下:
1 | mybatis-plus: |
__END__