MyBatis-Plus Sequence主键的实现

Sequence主键是什么:

序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。不占用磁盘空间,占用内存。

其主要用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值。

MP内置支持的数据库主键策略:

  • DB2KeyGenerator
  • H2KeyGenerator
  • KingbaseKeyGenerator
  • OracleKeyGenerator
  • PostgreKeyGenerator

mybatis plus 实体类主键策略有3种( 注解 > 全局 > 默认 )

注解使用

public class User extends Model<User> {

  @TableId(value = "id", type = IdType.AUTO)
  private String id;

  @TableField("real_name")
  private String realName;
}

IdType

AUTO:数据库ID自增
INPUT:用户输入ID
NONE:该类型为未设置主键类型,注解里等于跟随全局,全局里约等于 INPUT
ASSIGN_ID:使用雪花算法分配ID,主键类型为Number(Long和Integer)或String
ASSIGN_UUID:分配UUID,主键类型为String
ID_WORKER:分布式全局唯一ID 长整型类型,已弃用
UUID:UUID:32位UUID字符串,已弃用
ID_WORKER_STR:分布式全局唯一ID 字符串类型,已弃用

spring boot

支持主键类型指定(3.3.0开始自动识别主键类型)

方式一:使用配置类

@Bean
public IKeyGenerator keyGenerator() {
  return new H2KeyGenerator();
}

方式二:通过MybatisPlusPropertiesCustomizer自定义

@Bean
public MybatisPlusPropertiesCustomizer plusPropertiesCustomizer() {
  return plusProperties -> plusProperties.getGlobalConfig().getDbConfig().setKeyGenerator(new H2KeyGenerator());
}

Spring

方式一: XML配置

<bean id="globalConfig" class="com.baomidou.mybatisplus.core.config.GlobalConfig">
  <property name="dbConfig" ref="dbConfig"/>
</bean>

<bean id="dbConfig" class="com.baomidou.mybatisplus.core.config.GlobalConfig.DbConfig">
  <property name="keyGenerator" ref="keyGenerator"/>
</bean>

<bean id="keyGenerator" class="com.baomidou.mybatisplus.extension.incrementer.H2KeyGenerator"/>

方式二:注解配置

@Bean
public GlobalConfig globalConfig() {
 GlobalConfig conf = new GlobalConfig();
 conf.setDbConfig(new GlobalConfig.DbConfig().setKeyGenerator(new H2KeyGenerator()));
 return conf;
}

到此这篇关于MyBatis-Plus Sequence主键的实现的文章就介绍到这了,更多相关MyBatis-Plus Sequence主键内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 浅谈MyBatis-Plus学习之Oracle的主键Sequence设置的方法

    一.Oracle的主键Sequence设置简介 在Oracle数据库中不支持主键自增策略,它是通过Sequence序列来进行完成的,因此需要在MP中进行相关配置 二.相关配置如下 2.1.pom.xml 添加相关依赖 注意:由于oracle的授权问题,没办法从maven仓库中下载,因此可以手动从oracle官网中下载,并本地打包到仓库中 <!-- Oracle驱动: 因为Oracle授权的问题,不能从Maven的仓库中下载到Oracle驱动 --> <dependency> <

  • mybatis insert返回主键代码实例

    这篇文章主要介绍了mybatis insert返回主键代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在使用ibatis插入数据进数据库的时候,会用到一些sequence的数据,有些情况下,在插入完成之后还需要将sequence的值返回,然后才能进行下一步的操作. 使用ibatis的selectKey就可以得到sequence的值,同时也会将值返回.不过对于不同的数据库有不同的操作方式. 对于oracle: <insert id="

  • MyBatis-Plus Sequence主键的实现

    Sequence主键是什么: 序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字).不占用磁盘空间,占用内存. 其主要用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值. MP内置支持的数据库主键策略: DB2KeyGenerator H2KeyGenerator KingbaseKeyGenerator OracleKeyGenerator PostgreKeyGenerator mybatis plu

  • mybatis中insert主键ID获取和多参数传递的示例代码

    一.插入数据主键ID获取 一般我们在做业务开发时,经常会遇到插入一条数据并使用到插入数据的ID情况.如果先插入在查询的话需要多一次sql查询,未免效率太低.因此mybatis也有提供插入数据并返回主键ID的方式.如下 1.Insert/update 1.1.属性解释 keyProperty selectKey 语句结果应该被设置的目标属性.如果希望得到多个生成的列,也可以是逗号分隔的属性名称列表. resultType 结果的类型.MyBatis 通常可以推算出来,但是为了更加确定写上也不会有什

  • Mybatis insert方法主键回填和自定义操作

    在数据库插入的时候,有很多属性需要我们自己处理,如主键自增字段. MYSQL中主键根据一定规则生成后,需要我们在插入后去主动获取,以便后面的操作,Mybatis为我们提供了处理的方法. 主键回填 keyProperty:指定哪个字段是主键 useGeneratedKeys:这个主键是否使用数据库内置生成策略 我们可以在XML文件中进行如下配置: <insert id="insertUser" parameterType="user" useGeneratedK

  • tk.mybatis实现uuid主键生成的示例代码

    引入依赖 <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>2.0.2</version> </dependency> 1.创建一个GenId的实现类 package com.xiaobu.base.entity; import tk.mybatis.ma

  • mybatis中返回主键一直为1的问题

    目录 mybatis 返回主键一直为1 mybatis 自增主键 主键回传,返回id为null 踩坑 Mybatis主键回传流程 踩坑 总结 mybatis 返回主键一直为1 1是返回的插入成功的行数,这没有错 而自增id则是直接映射到对象里,直接输出 xxx.getId()即可 举例: 在xml中: <insert id="addUser" parameterType="blog.model.User" useGeneratedKeys="true

  • MyBatis处理mysql主键自动增长出现的不连续问题解决

    问题产生 设置了mysql主键自动增长,但因为删除字段的操作导致主键不连续 解决方法 step1:在mapper.xml文件中添加update标签设置自动增长的增量为1 alter table student AUTO_INCREMENT=1; <!--StudentMapper.xml文件--> <mapper namespace="StudentMapper"> ... ... <update id="alter"> alte

  • MyBatis中insert操作返回主键的实现方法

    在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数:如果业务层需要得到记录的主键时,可以通过配置的方式来完成这个功能 针对Sequence主键而言,在执行insert sql前必须指定一个主键值给要插入的记录,如Oracle.DB2,可以采用如下配置方式: <insert id="add" parameterType="vo.Category"> <selectKey resultType="

  • MyBatis insert语句返回主键和selectKey标签方式

    目录 insert语句返回主键和selectKey标签 1.主键自增的情况 2.Oracle中用Sequence获取主键 MyBatis insert语句key的生成和返回 1.使用数据库自带的生成器 2.使用selectKey insert语句返回主键和selectKey标签 往数据库中插入一条记录后,有时候我们需要这条记录的主键,用于后续的操作. 如果在插入后再去查一次数据库,显然不够优雅和效率,MyBatis中已经有了insert后返回主键的功能,下面就主要讲几种不同情况的具体做法. 1.

  • 浅谈MyBatis Plus主键设置策略

    根据一次插入失败报错来了解下MyBatis Plus主键设置策略今天学习使用MyBatis Plus,发现使用代码生成器生成对应的实体类.Service和Mapper后,在保存数据时报错 com.baomidou.mybatisplus.exceptions.MybatisPlusException: java.lang.reflect.InvocationTargetException at com.baomidou.mybatisplus.MybatisSqlSessionTemplate$

随机推荐