`

mybatis 获取主键自增id值

 
阅读更多

 

需求:

  业务编号自动生成,不可编辑,生成规则:

  业务类型编码+当前日期+当天生成序号,例如:12月6日第一次创建业务,则业务编号为:112061

 

使用技术:

  mybatis(实际使用mybatis-plus)

  利用replace into 替换当前符合条件记录,replace要求必须有主键或者唯一索引

  那么,可以设置日期为唯一索引

  表设计:

  id  主键自增

  date 日期类型,,唯一索引

  

 

controller层实现

int seq = repoSeqService.getRepoSeq();

 

service层

@Autowired

RepoSeqMapper repoSeqMapper;

@Override

public int getRepoSeq() {

 

RepoSeq seq = new RepoSeq();

seq.setDate(new Date());

//必须传实体,否则取不到参数

int count = repoSeqMapper.insertRepoSeq(seq);

if(count > 0){

return seq.getId();//取自增主键

}

return 0;

}

 

mapper中

int insertRepoSeq(RepoSeq seq);

 

mapper.xml中

<insert id="insertRepoSeq" parameterType="com.repobase.entity.RepoSeq"

useGeneratedKeys="true" keyProperty="id">

replace into t_repo_seq(date) values(CURRENT_DATE())

</insert>

必须写:useGeneratedKeys="true" keyProperty="id">

关键:replace into

 

 

 

分享到:
评论

相关推荐

    mybatis自增主键文档

    在MyBatis中,处理自增主键是一个常见的需求,特别是在Oracle和MySQL这两个数据库中。Oracle通常使用Sequence来生成自增主键,而MySQL则直接通过表定义的自增属性来处理。以下将详细讲解这两种数据库在MyBatis中的...

    mybatis获取自增ID

    在MyBatis中,可以通过在`&lt;insert&gt;`标签中添加`useGeneratedKeys="true"`和`keyProperty`属性来自动获取并填充插入语句后返回的自增ID值。 **示例代码:** ```xml &lt;insert id="insert" parameterType=...

    mybatis获取自增主键的值

    在MyBatis这个流行的Java持久层框架中,处理自增主键的值通常涉及到插入数据后如何获取新生成的ID。下面将详细阐述MyBatis如何实现这一功能。 1. **自增主键的原理**: 自增主键通常在关系型数据库如MySQL、...

    MyBatis插入时获取自增主键方法

    在MyBatis中,当你需要在插入数据时获取自增主键的值,有几种方法可以实现。在MyBatis 3.2.6版本中,主要提供了两种方式,这两种方式都适用于MySQL 5.5数据库,因为MySQL支持返回自增主键的特性。下面是这两种方法的...

    Mybatis-plus实现主键自增和自动注入时间的示例代码

    Mybatis-plus 实现主键自增和自动注入时间的示例代码 Mybatis-plus 是一个基于 Mybatis 的增强型 ORM 框架,它提供了许多实用的功能来简化数据库操作。在本文中,我们将通过示例代码,介绍如何使用 Mybatis-plus ...

    MyBatis Oracle 自增序列的实现方法

    2. 在MyBatis映射文件中使用`&lt;selectKey&gt;`标签在插入前获取序列值。 3. 将获取的序列值插入到对应的主键字段。 4. 确保`parameterType`中的对象有对应的属性来接收自增序列的值。 通过以上配置,你就可以在MyBatis...

    Mybatis使用useGeneratedKeys获取自增主键的方法

    在Mybatis中,`useGeneratedKeys`属性是一个关键设置,用于获取自增主键的值。这个特性在处理像MySQL、SQL Server等支持自动增长字段的数据库时特别有用,可以避免进行额外的查询来获取新插入记录的主键。本文将深入...

    支持主键自增的数据库获取主键值.zip

    在处理主键自增时,MyBatis提供了一些特定的机制来帮助我们获取这些自动生成的主键值。 首先,我们需要在MyBatis的映射文件(Mapper XML)中设置`useGeneratedKeys="true"`和`keyProperty="property_name"`这两个...

    最新Mybatis插入数据返回自增主键详细配置

    Mybatis插入数据返回的自增主键会自动设置为插入对象的属性值,因此我们可以通过获取对象的属性获得自增的主键。 1、通过xml配置获取自增主键 xml配置 select last_insert_id() insert into sys_user(username,...

    spring-boot-mybatis-interceptor:mybatis自定义主键插件,通过该插件生成分布式唯一雪花ID作为数据库表的主键

    主键自增:1、自增ID容易被爬虫遍历数据。2、分表分库会有ID冲突。 UUID: 1、太长,并且有索引碎片,索引多占用空间的问题 2、无序。 雪花算法就很适合在分布式场景下生成唯一ID,它既可以保证唯一又可以排序,该插件...

    mybatis自定义生成代码策略示例

    MyBatis 是一款深受开发者喜爱的 Java ORM(对象关系映射)框架,它允许程序员以一种声明式的方式编写 SQL 查询,极大地提高了开发效率。在实际项目中,为了提高开发速度和减少重复工作,通常会使用代码生成器来自动...

    MybatisPlus中插入数据获取主键值示例代码

    在MybatisPlus中,插入数据并获取主键值是一个常见的需求,特别是在需要自增主键或者生成唯一ID的情况下。以下是对这个主题的详细阐述: 首先,我们需要了解MybatisPlus中的插入数据操作。在MybatisPlus中,可以...

    获取自增ID.docx

    自增ID指的是在表中自动递增的字段值,通常用于主键。本文档将详细介绍如何在Java环境下通过不同方法获取数据库中的自增ID。 #### 二、获取自增ID的方法 ##### 2.1 XML配置方法 在Java环境下,尤其是在使用...

    mybatis-plus主键生成策略

    MyBatis-Plus主键生成策略是其框架中一个重要的特性,它提供了多种方式来生成主键ID,以便适应不同的数据库环境和业务需求。MyBatis-Plus的默认策略是Twitter的“Snowflake”算法,它能生成全局唯一的长整型ID。然而...

    mybatis 获取mysql插入记录的自增长字段值.pdf

    在这个例子中,`keyProperty="id"`意味着将插入操作返回的自增ID值赋给`Order`对象的`id`属性。 接下来,我们看一个具体的MyBatis Mapper文件中的XML映射片段: ```xml &lt;insert id="insert" keyColumn="id" ...

    详解mybatis plus使用insert没有返回主键的处理

    在使用MyBatis Plus (MP) 进行数据操作时,有时可能会遇到插入数据后无法获取自增主键的情况。本文将深入分析这个问题,并提供解决方案。 首先,MyBatis Plus 是 MyBatis 的一个扩展库,它提供了很多方便的数据操作...

    Mybatis高级映射、动态SQL及获得自增主键的解析

    MyBatis提供了多种方式获取自增主键的值。最常用的是使用`useGeneratedKeys`和`keyProperty`属性,它们可以配合`insert`语句自动获取新插入记录的主键值。例如: ```xml &lt;insert id="insertAuthor" parameterType=...

    利用Java的MyBatis框架获取MySQL中插入记录时的自增主键

    `useGeneratedKeys` 指示MyBatis在执行插入操作后尝试获取自增主键的值,而`keyProperty` 指定了Java对象中对应的属性名,即`Spares`类的`id`属性。例如: ```xml &lt;insert id="insert" parameterType="Spares" ...

    mybatis-plus id主键生成的坑

    首先,MyBatis-Plus 默认的主键生成策略是 `IdType.AUTO`,这意味着它会尝试根据数据库的自增特性来生成主键。然而,当主键类型被误设为 Integer 而不是 Long 或其他能容纳更大数值的数据类型时,可能会出现异常。...

    mybatis返回插入的id1

    在 MyBatis 框架中,当我们执行一个插入(insert)操作时,有时需要获取新插入记录的自增主键值,例如数据库中的唯一标识 ID。MyBatis 提供了方便的功能来实现这一需求,这主要涉及到 `keyProperty` 和 `...

Global site tag (gtag.js) - Google Analytics