赞
踩
- <dependency>
- <groupId>com.baomidou</groupId>
- <artifactId>mybatis-plus-boot-starter</artifactId>
- <version>3.5.3.1</version>
- </dependency>
- 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
- @Mapper
- public interface BookMapper extends BaseMapper<Book> {
- }
接口
- public interface BookService extends IService<Book> {
- }
实现类
- @Service
- public class BookServiceImpl extends ServiceImpl<BookMapper,Book> implements BookService {}
①采用注解形式:通过@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_
① 若实体类和表中表示主键的不是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进制,定义了在时间和空间都完全唯一的系统信息。
① 数据库字段和表实体类的属性一致,框架在拼接SQL语句的时候,会使用属性名称直接拼接sql语句
②当数据库字段和表实体类的属性不一致时,我们可以使用@TableField()注解改变字段和属性的映射,让注解中的名称和表字段保持一致
③字段失效情况:当数据库中有字段不希望被查询,我们可以通过@TableField(select = false)来隐藏这个字段,那在拼接SQL语句的时候,就不会拼接这个字段。
④视图字段:实体类中存在但是数据库中不存在的字段。通过@TableField(exist = false)来去掉这个字段,不让他作为查询字段。
① 物理删除:真实删除,将对应数据从数据库中删除,之后查询不到此条被删除的数据
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。