当前位置:   article > 正文

Java:MybatisPlus--配置及其注解_mybatisplus的configuration配置

mybatisplus的configuration配置

一、环境准备

1、导入依赖

  1. <dependency>
  2. <groupId>com.baomidou</groupId>
  3. <artifactId>mybatis-plus-boot-starter</artifactId>
  4. <version>3.5.3.1</version>
  5. </dependency>

2、配置application.yml

  1. spring:
  2. datasource:
  3. driver-class-name: com.mysql.cj.jdbc.Driver
  4. url: jdbc:mysql://localhost:3306/ssm?serverTimezone=UTC
  5. username: root
  6. password: root
  7. main:
  8. banner-mode: off
  9. mybatis-plus:
  10. global-config:
  11. banner: false
  12. configuration:
  13. log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

3、mapper层配置

  1. @Mapper
  2. public interface BookMapper extends BaseMapper<Book> {
  3. }
BaseMapper MyBatis-Plus 提供的模板 mapper ,其中包含了基本的 CRUD 方法,泛型为操作的
实体类型

4、service层配置

接口

  1. public interface BookService extends IService<Book> {
  2. }

实现类 

  1. @Service
  2. public class BookServiceImpl extends ServiceImpl<BookMapper,Book> implements BookService {}
MyBatis-Plus 中有一个接口 IService 和其实现类 ServiceImpl ,封装了常见的业务层逻
ServiceImpl实现了IService,提供了IService中基础功能的实现。若ServiceImpl无法满足业务需求,则可以使用自定的BookService定义方法,并在实现类中实现。

5、具体的继承和实现

 二、注解操作

1、表映射:@TableName

①采用注解形式通过@TableName()注解指定映射的数据库表名,就会按照指定的表名进行映射

②通过全局配置解决

可以使用MyBatis-Plus提供的全局配置,为实体类所对应的表名设置默认的前缀,那么就 不需要在每个实体类上通过@TableName标识实体类对应的表。

  1. mybatis-plus:
  2. configuration:
  3. # 配置MyBatis日志
  4. log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  5. global-config:
  6. db-config:
  7. # 配置MyBatis-Plus操作表的默认前缀
  8. table-prefix: t_

2、主键策略@TableId

① 若实体类和表中表示主键的不是id,而是其他字段,通过@Tableld注解对应数据库字段名称。

② 在实体类中uid属性上通过@TableId将其标识为主键,即可成功执行SQL语句。

③ 通过@TableId注解的value属性,指定表中的主键字段。

④ IdType.ASSIGN_ID(默认) 基于雪花算法的策略生成数据id,与数据库id是否设置自增无关

雪花算法是由一个64位的二进制组成的,最终就是一个Long类型的数值。

实现有序、唯一、且不直接暴露排序的数字。

IdType.INPUT:设置手动添加主键 ,否则无法添加数据,把自动递增去掉

IdType.AUTO :使用数据库的自增策略,前提确保数据库设置了id自增,否则无效。

NONE:表示不指定主键生成策略,当我们没有指定主键生成策略或者主键策略为NONE的时候

跟随的是全局策略,全局配置中 id-type是用于配置主键生成策略的,我们可以看一下id-type的

默认值,即雪花算法。

ASSIGN_UUID:全局唯一标识符,定义为一个字符串主键,采用32位数字组成,编码采用16进制,定义了在时间和空间都完全唯一的系统信息。

3、字段映射:@TableField

数据库字段和表实体类的属性一致,框架在拼接SQL语句的时候,会使用属性名称直接拼接sql语句

当数据库字段和表实体类的属性不一致时,我们可以使用@TableField()注解改变字段和属性的映射,让注解中的名称和表字段保持一致

③字段失效情况:当数据库中有字段不希望被查询,我们可以通过@TableField(select = false)来隐藏这个字段,那在拼接SQL语句的时候,就不会拼接这个字段。

④视图字段实体类中存在但是数据库中不存在的字段。通过@TableField(exist = false)来去掉这个字段,不让他作为查询字段。

4@TableLogic

① 物理删除:真实删除,将对应数据从数据库中删除,之后查询不到此条被删除的数据

② 逻辑删除:假删除,将对应数据中代表是否被删除字段的状态修改为“ 被删除状态 ,之后在数据库 中仍旧能看到此条数据记录。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/525272
推荐阅读
相关标签
  

闽ICP备14008679号