sprinboot主键自增_Springboot+MybatisPlus+Oracle实现主键自增代码示例

本文介绍了如何在Springboot项目中结合MybatisPlus和Oracle数据库实现主键自增。通过配置application.yml,设置主键类型和序列接口,以及在实体类中使用@Id和@GeneratedValue注解,配合Oracle自增序列,解决了主键插入问题。当需要获取插入后的主键ID时,可以通过自定义SQL插入语句并利用#{id}占位符来实现。
摘要由CSDN通过智能技术生成

本篇文章小编给大家分享一下Springboot+MybatisPlus+Oracle实现主键自增代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。

application.yml配置

# Mybatis的相关配置

mybatis-plus:

mapper-locations: classpath*:com/XX/XX/XX/dao/mapping/*.xml

typeAliasesPackage: com.XX.XX.XX.model

global-config:

#主键类型 0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";

id-type: 1

#序列接口实现类配置

key-generator: com.baomidou.mybatisplus.incrementer.OracleKeyGenerator

model实体类配置(仅展示id)

import java.io.Serializable;

import javax.persistence.*;

import lombok.Data;

@Data

@Table(name = "POJO")

public class SysLogeInfo implements Serializable {

@Id

@Column(name = "ID")

@SequenceGenerator(name = "sequenceGenerator",sequenceName = "POJO_SEQ")

@GeneratedValue(generator = "sequenceGenerator",strategy = GenerationType.SEQUENCE)

private Integer id;

}

其中:

@SequenceGenerator的name与@GeneratedValue的generator相对应

sequenceName即你在oracle数据库中为此表创建的自增序列名(貌似框架无法自动生成,需要自己手动创建)

这样,主键ID插入null值的问题基本解决了,但是我们的Mapper继承了tk.mybatis.mapper.common.Mapper,插入是直接调tk.Mapper的insertSelective(T

var1)方法,有时候我们需要插入后的主键id,这种方法没办法得到,所以只能手写insert方法,如下。

SELECT POJO_SEQ.nextval id FROM DUAL

INSERT INTO POJO

( ID,COL1,COL2,COL3,COL4,COL5,COL6)

VALUES

(#{id,jdbcType=INTEGER},

#{col1,jdbcType=INTEGER},

#{col2,jdbcType=VARCHAR},

#{col3,jdbcType=INTEGER},

#{col4,jdbcType=INTEGER},

#{col5,jdbcType=DATE},

#{col6,jdbcType=INTEGER})

注:标签中加入order='BEFORE'即可在插入完成后返回主键。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值