Java:MybatisPlus--配置及其注解
一、环境准备
1、导入依赖
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.1</version></dependency>
2、配置application.yml
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/ssm?serverTimezone=UTCusername: rootpassword: rootmain:banner-mode: offmybatis-plus:global-config:banner: falseconfiguration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
3、mapper层配置
@Mapper
public interface BookMapper extends BaseMapper<Book> {
}
BaseMapper是MyBatis-Plus提供的模板mapper,其中包含了基本的CRUD方法,泛型为操作的
实体类型 。
4、service层配置
接口
public interface BookService extends IService<Book> {
}
实现类
@Service
public class BookServiceImpl extends ServiceImpl<BookMapper,Book> implements BookService {}
MyBatis-Plus中有一个接口 IService和其实现类 ServiceImpl,封装了常见的业务层逻
ServiceImpl实现了IService,提供了IService中基础功能的实现。若ServiceImpl无法满足业务需求,则可以使用自定的BookService定义方法,并在实现类中实现。
二、注解操作
1、@TableName
①采用注解形式:在实体类类型上添加@TableName("t_book"),标识实体类对应的表,即可成功执行SQL语句。实体类类型的类名和要操作的表的表名不一致。
②通过全局配置解决
可以使用MyBatis-Plus提供的全局配置,为实体类所对应的表名设置默认的前缀,那么就 不需要在每个实体类上通过@TableName标识实体类对应的表。
mybatis-plus:configuration:# 配置MyBatis日志log-impl: org.apache.ibatis.logging.stdout.StdOutImplglobal-config:db-config:# 配置MyBatis-Plus操作表的默认前缀table-prefix: t_
2、@TableId
① 若实体类和表中表示主键的不是id,而是其他字段,通过@Tableld注解对应数据库字段名称。
② 在实体类中uid属性上通过@TableId将其标识为主键,即可成功执行SQL语句。
③ 通过@TableId注解的value属性,指定表中的主键字段。
④ IdType.ASSIGN_ID(默认) 基于雪花算法的策略生成数据id,与数据库id是否设置自增无关
IdType.INPUT:设置主动添加主键 ,如果不主动添加则报错。
IdType.AUTO :使用数据库的自增策略,注意,该类型请确保数据库设置了id自增,否则无效。
3、@TableField
① 若实体类中的属性使用的是驼峰命名风格,而表中的字段使用的是下划线命名风格。
此时MyBatis-Plus会自动将下划线命名风格转化为驼峰命名风格
② 若实体类中的属性和表中的字段不满足情况,
需要在实体类属性上使@TableField("")设置属性所对应的字段名。
4、@TableLogic
① 物理删除:真实删除,将对应数据从数据库中删除,之后查询不到此条被删除的数据
② 逻辑删除:假删除,将对应数据中代表是否被删除字段的状态修改为“被删除状态”,之后在数据库 中仍旧能看到此条数据记录。