需求:
业务编号自动生成,不可编辑,生成规则:
业务类型编码+当前日期+当天生成序号,例如: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中,处理自增主键是一个常见的需求,特别是在Oracle和MySQL这两个数据库中。Oracle通常使用Sequence来生成自增主键,而MySQL则直接通过表定义的自增属性来处理。以下将详细讲解这两种数据库在MyBatis中的...
在MyBatis中,可以通过在`<insert>`标签中添加`useGeneratedKeys="true"`和`keyProperty`属性来自动获取并填充插入语句后返回的自增ID值。 **示例代码:** ```xml <insert id="insert" parameterType=...
在MyBatis这个流行的Java持久层框架中,处理自增主键的值通常涉及到插入数据后如何获取新生成的ID。下面将详细阐述MyBatis如何实现这一功能。 1. **自增主键的原理**: 自增主键通常在关系型数据库如MySQL、...
在MyBatis中,当你需要在插入数据时获取自增主键的值,有几种方法可以实现。在MyBatis 3.2.6版本中,主要提供了两种方式,这两种方式都适用于MySQL 5.5数据库,因为MySQL支持返回自增主键的特性。下面是这两种方法的...
Mybatis-plus 实现主键自增和自动注入时间的示例代码 Mybatis-plus 是一个基于 Mybatis 的增强型 ORM 框架,它提供了许多实用的功能来简化数据库操作。在本文中,我们将通过示例代码,介绍如何使用 Mybatis-plus ...
2. 在MyBatis映射文件中使用`<selectKey>`标签在插入前获取序列值。 3. 将获取的序列值插入到对应的主键字段。 4. 确保`parameterType`中的对象有对应的属性来接收自增序列的值。 通过以上配置,你就可以在MyBatis...
在Mybatis中,`useGeneratedKeys`属性是一个关键设置,用于获取自增主键的值。这个特性在处理像MySQL、SQL Server等支持自动增长字段的数据库时特别有用,可以避免进行额外的查询来获取新插入记录的主键。本文将深入...
在处理主键自增时,MyBatis提供了一些特定的机制来帮助我们获取这些自动生成的主键值。 首先,我们需要在MyBatis的映射文件(Mapper XML)中设置`useGeneratedKeys="true"`和`keyProperty="property_name"`这两个...
Mybatis插入数据返回的自增主键会自动设置为插入对象的属性值,因此我们可以通过获取对象的属性获得自增的主键。 1、通过xml配置获取自增主键 xml配置 select last_insert_id() insert into sys_user(username,...
主键自增:1、自增ID容易被爬虫遍历数据。2、分表分库会有ID冲突。 UUID: 1、太长,并且有索引碎片,索引多占用空间的问题 2、无序。 雪花算法就很适合在分布式场景下生成唯一ID,它既可以保证唯一又可以排序,该插件...
MyBatis 是一款深受开发者喜爱的 Java ORM(对象关系映射)框架,它允许程序员以一种声明式的方式编写 SQL 查询,极大地提高了开发效率。在实际项目中,为了提高开发速度和减少重复工作,通常会使用代码生成器来自动...
在MybatisPlus中,插入数据并获取主键值是一个常见的需求,特别是在需要自增主键或者生成唯一ID的情况下。以下是对这个主题的详细阐述: 首先,我们需要了解MybatisPlus中的插入数据操作。在MybatisPlus中,可以...
自增ID指的是在表中自动递增的字段值,通常用于主键。本文档将详细介绍如何在Java环境下通过不同方法获取数据库中的自增ID。 #### 二、获取自增ID的方法 ##### 2.1 XML配置方法 在Java环境下,尤其是在使用...
MyBatis-Plus主键生成策略是其框架中一个重要的特性,它提供了多种方式来生成主键ID,以便适应不同的数据库环境和业务需求。MyBatis-Plus的默认策略是Twitter的“Snowflake”算法,它能生成全局唯一的长整型ID。然而...
在这个例子中,`keyProperty="id"`意味着将插入操作返回的自增ID值赋给`Order`对象的`id`属性。 接下来,我们看一个具体的MyBatis Mapper文件中的XML映射片段: ```xml <insert id="insert" keyColumn="id" ...
在使用MyBatis Plus (MP) 进行数据操作时,有时可能会遇到插入数据后无法获取自增主键的情况。本文将深入分析这个问题,并提供解决方案。 首先,MyBatis Plus 是 MyBatis 的一个扩展库,它提供了很多方便的数据操作...
MyBatis提供了多种方式获取自增主键的值。最常用的是使用`useGeneratedKeys`和`keyProperty`属性,它们可以配合`insert`语句自动获取新插入记录的主键值。例如: ```xml <insert id="insertAuthor" parameterType=...
`useGeneratedKeys` 指示MyBatis在执行插入操作后尝试获取自增主键的值,而`keyProperty` 指定了Java对象中对应的属性名,即`Spares`类的`id`属性。例如: ```xml <insert id="insert" parameterType="Spares" ...
首先,MyBatis-Plus 默认的主键生成策略是 `IdType.AUTO`,这意味着它会尝试根据数据库的自增特性来生成主键。然而,当主键类型被误设为 Integer 而不是 Long 或其他能容纳更大数值的数据类型时,可能会出现异常。...
在 MyBatis 框架中,当我们执行一个插入(insert)操作时,有时需要获取新插入记录的自增主键值,例如数据库中的唯一标识 ID。MyBatis 提供了方便的功能来实现这一需求,这主要涉及到 `keyProperty` 和 `...