mybatis-plus 使用总结

发布时间 2023-11-22 23:08:58作者: 大树2

Java开发组件

1.IDEA
2.JDK
3.Git
4.Maven安装配置
5.Mysql
6.Mybatis
7.Mybatis-plus
8.Nacos
9.Openfeign
10.Gateway
11.xxl-job-admin

12.Skywalking
13.Sentinel
14.Arthas

15.Redis
16.Mongodb
17.ES
18.StarRocks
19.Datax

-----------------mybatis-plus 使用总结-----------------

1.mybatis-plus 简介
简单配置,及可单表实现增删改查,分页插件
多表查询还是可以使用mybaits

2.pom.xml添加依赖项:

com.baomidou
mybatis-plus-boot-starter
3.5.3.1

3.定义接口继承mybatisplus: public interface UserMapper extends BaseMapper {}

类名驼峰转下划线作为表名
名为id的字段作为主键,自动增长
变量名驼峰转下划线作为表的字段名

MybatisPlus中比较常用的几个注解如下:当定义的表名和数据库表面不一致时:
@TableName:用来指定表名
@TableId:用来指定表中的主键字段信息
@TableField:用来指定表中的普通字段信息

@TableName("tb_user")
public class User {

 @TableId(value = IdType.AUTO) //默认是ASSIGN_ID
private Long id;

@TableField("username")
private String username;

@TableField("'order'")
private Integer order;

@TableField("is_married")
private Boolean isMarried;

@TableField(exist = false)
private String address;

IdType枚举:
AUTO:数据库自增长
INPUT:通过set方法自行输入
ASSIGN_ID:分配 ID,接口IdentifierGenerator的方法nextId来生成id,默认实现类为DefaultIdentifierGenerator雪花算法
使用@TableField的常见场景:
成员变量名与数据库字段名不一致
成员变量名以is开头,且是布尔值
成员变量名与数据库关键字冲突
成员变量不是数据库字段

MybatisPlus是如何获取实现CRUD的数据库表信息的?
默认以类名驼峰转下划线作为表名
默认把名为id的字段作为主键
默认把变量名驼峰转下划线作为表的字段名
MybatisPlus的常用注解有哪些?
@TableName:指定表名称及全局配置
@TableId:指定id字段及相关配置
@TableField:指定普通字段及相关配置
IdType的常见类型有哪些?
AUTO、ASSIGN_ID、INPUT
使用@TableField的常见场景是?
成员变量名与数据库字段名不一致
成员变量名以is开头,且是布尔值
成员变量名与数据库关键字冲突
成员变量不是数据库字段

4.测试mybatisplus方法
public class UserMapperTest {

@Autowired
private UserMapper userMapper;

@Test
void testInsert(){
    User user =new User();
    user.setId(5l);
    user.setUsername("denny");

    userMapper.insert(user);
}
  1. mp支持的常见配置,
    MyBatisPlus的配置项继承了MyBatis原生配置和一些自己特有的配置。例如:

mybatis-plus:
type-aliases-package: com.itheima.mp.domain.po # 别名扫描包
mapper-locations: "classpath:/mapper/**/.xml" # Mapper.xml文件地址,默认值
configuration:
map-underscore-to-camel-case: true # 是否开启下划线和驼峰的映射
cache-enabled: false # 是否开启二级缓存
global-config:
db-config:
id-type: assign_id # id为雪花算法生成
update-strategy: not_null # 更新策略:只更新非空字段