mybatisplus学习总结
第一个问题:MybatisPlus是如何获取实现CRUD的数据库表信息的?
MyBatisPlus通过扫描实体类,并基于反射获取实体类信息作为数据库表信息。
默认以类名驼峰转下划线作为表名 默认把名为id的字段作为主键 默认把变量名驼峰转下划线作为表的字段名
第二个问题:mybatisplus有哪些常用注解?
MybatisPlus中比较常用的几个注解如下:
@TableName:用来指定表名
@TableId:用来指定表中的主键字段信息
IdType枚举:
AUTO:数据库自增长
INPUT:通过set方法自行输入
ASSIGN_ID:分配 ID,接口IdentifierGenerator的方法nextId来生成id,默认实现类为
DefaultIdentifierGenerator雪花算法
使用的例子:IdType.AUTO
@TableField:用来指定表中的普通字段信息
使用@TableField的常见场景: 成员变量名与数据库字段名不一致 成员变量名以is开头,且是布尔值 成员变量名与数据库关键字冲突 成员变量不是数据库字段
第三个问题:MyBatisPlus使用的基本流程是什么?
1.引入起步依赖mybatis-plus-boot-starter
<!--MybatisPlus--><dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.1</version></dependency>
2.自定义Mapper继承BaseMapper 接口(public interface UserMapper extends BaseMapper<User> { })
3.在实体类上添加注解声明(mybatis-plus注解) 表信息
4.在application.yml中根据需要添加配置
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 # 更新策略:只更新非空字段