Java:MybatisPlus--配置及其注解

文章详细介绍了如何集成MyBatis-Plus,包括引入依赖、配置application.yml、Mapper和Service层的设置。此外,还讨论了MyBatis-Plus的注解用法,如@TableName用于表映射,@TableId定义主键策略,@TableField处理字段映射,以及@TableLogic实现逻辑删除的功能。
摘要由CSDN通过智能技术生成

一、环境准备

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.Driver
    url: jdbc:mysql://localhost:3306/ssm?serverTimezone=UTC
    username: root
    password: root
  main:
    banner-mode: off

mybatis-plus:
  global-config:
    banner: false
  configuration:
    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定义方法,并在实现类中实现。

5、具体的继承和实现

 二、注解操作

1、表映射:@TableName

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

②通过全局配置解决

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

mybatis-plus:
  configuration:
  # 配置MyBatis日志
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  global-config:
    db-config:
    # 配置MyBatis-Plus操作表的默认前缀
    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

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

② 逻辑删除:假删除,将对应数据中代表是否被删除字段的状态修改为“ 被删除状态 ,之后在数据库 中仍旧能看到此条数据记录。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: MyBatis Plus 是一个增强的 MyBatis 框架,提供了许多常用的注解来简化操作。以下是一些常用的 MyBatis Plus 注解: - `@TableName`:标注实体类对应的数据库表名。 - `@TableId`:标注实体类中对应的主键字段。 - `@TableField`:标注实体类中对应的数据库字段。 - `@Version`:标注乐观锁字段。 - `@Transient`:标注不需要映射到数据库表中的字段。 - `@KeySequence`:标注使用数据库序列生成主键的实体类。 - `@SqlParser`:标注是否需要 MyBatis Plus 的执行分析插件。 ### 回答2: MyBatisPlus是一个基于MyBatis的轻量级ORM框架,提供了一些常用注解来简化数据库操作。 1. @TableName:用于指定实体类对应的数据库表名,可以在类级别上使用。 2. @TableId:用于指定实体类的主键字段,并可以设置主键生成策略。 3. @TableField:用于指定实体类字段与数据库表字段的映射关系,可以指定字段名、是否进行主键策略等。 4. @Version:用于实现乐观锁,指定实体类中的版本字段。 5. @EnumValue:用于枚举字段与数据库中存储值的映射关系。 6. @TableLogic:用于逻辑删除,实体类中指定一个逻辑删除的字段。 7. @KeySequence:用于指定主键序列的名称,主要用于Oracle数据库。 8. @SqlParser:用于指定在进行SQL解析时的一些属性,如过滤条件等。 9. @SqlJoin:用于指定查询时的多表关联查询。 10. @SqlStatement:用于自定义SQL的注解,可以指定SQL语句和对应的操作类型。 这些注解可以在实体类中使用,通过对实体类进行注解配置MyBatisPlus可以自动根据注解生成对应的SQL语句,简化了数据库操作的编写。同时,这些注解提供了一些额外的功能,如乐观锁、逻辑删除等,方便开发者进行数据库操作和管理。总之,MyBatisPlus的常用注解可以简化开发者对数据库的操作,提高开发效率。 ### 回答3: MyBatisPlus是一个用于简化MyBatis操作的开源框架,它提供了许多常用的注解来增强MyBatis的功能,使开发更加便捷和高效。 1. @TableName注解:用于标识实体类与数据库表之间的映射关系,通过指定表名可以方便地进行CRUD操作。 2. @TableField注解:用于标识实体类中的字段,可以指定字段名、是否为主键、是否为自增等属性,方便进行数据库操作。 3. @TableId注解:用于标识实体类中的主键字段,可以指定主键的生成策略,包括自增、UUID、雪花算法等,简化主键的处理。 4. @Result注解:用于指定查询结果的映射关系,可以通过指定列名、Java属性名等方式进行映射,确保查询结果正确转换为实体对象。 5. @Insert注解:用于标识插入操作,可以直接将实体对象插入到数据库中,提高插入效率。 6. @Update注解:用于标识更新操作,可以根据条件更新实体对象的属性值,避免手动拼接更新语句。 7. @Delete注解:用于标识删除操作,可以根据条件删除数据库中的数据,简化删除数据的操作。 8. @Select注解:用于标识查询操作,可以根据条件查询数据库中的数据,方便地进行数据查询。 总之,MyBatisPlus提供了一系列常用的注解,可以简化开发人员的操作,提高开发效率。使用这些注解,我们可以更加方便地完成数据库操作,减少了手动sql编写的工作量,提高了开发速度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IsLuNaTiC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值