上周周一,本来刚过完周末,高高兴兴,老大突然安排了个活,要在一天内把项目的MySQL数据库换成Oracle数据库,我们都知道这是不可能完成的任务,但是,秉承着“没有困难的工作,只有不努力的打工人”的精神,我们马上投入了工作,第一步当然是先配置数据库、oracle建表,这个解决调试了一上午,然后下午卡到oracle主键了,所有人网上找方法,一直到第二天凌晨3点半都还没解决,网上方法很多,试了好多都不管用,终于第二天才找到了满足的方法。

废话不多说,下面贴出。

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"即可在插入完成后返回主键。

到此这篇关于Springboot+MybatisPlus+Oracle实现主键自增的文章就介绍到这了,更多相关Springboot+MybatisPlus+Oracle实现主键自增内容请搜索云海天教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持云海天教程!

原文链接:https://blog.csdn.net/MasterVision/article/details/109736194

mybatisplus+oracle,Springboot+MybatisPlus+Oracle实现主键自增的示例代码相关推荐

  1. oracle建表 和 设置主键自增

    1.新建table CREATE TABLE ysb_log(id number(8) primary key not null ,tbdate varchar(50) NULL,tb_time va ...

  2. oracle自增插入数据,oracle实现插入数据时主键自增

    在看ORACLE_PL/SQL实例精解的时候用到了student表,需要自己创建. 1  首先是建表语句 create table student ( student_id number(8) not ...

  3. mybatis-plus 主键自增问题

    1.当你使用mybatis-plus时,如果不设置主键自增策略,默认使用雪花算法 两种方法默认设置mybatis主键自增策略: 1.单个实体类设置,作用域只有这个类 需要在创建数据表的时候设置主键自增 ...

  4. oracle批量插入并且返回自增主键_mybatis + (oracle)实现主键自增 + 插入数据并返回主键...

    一.实现主键自增 在oracle数据库中,主键并没有办法自动增长,无法使用insert对应的useGeneratedKeys和keyProperty属性自动返回增加的主键. 要实现自增需要修改 ID列 ...

  5. oracle主键自增

    前言 众所周知,MySQL数据库的主键自增设置非常简单,任何一个常用的可视化工具都支持,只要打一下勾就可以开启主键自增了.然而Oracle并没有那么简单,它需要执行几个简短语句. 操作步骤 为了方便讲 ...

  6. mybatis-puls 集成oracle 主键自增

    oracle通过mybatis-puls新增数据时,主键自增不同于MySQL添加注解,oracle需要进行配置 1,创建表 2,创建序列 create sequence XXX_SEQ INCREME ...

  7. mybatis 实现oracle主键自增的机制

    本篇文章将研究mybatis 实现oracle主键自增的机制 首先我们看对于同一张student表,对于mysql,sql server,oracle中它们都是怎样创建主键的 在mysql中 [sql ...

  8. oracle hibernate 主键,oracle hibernate 主键自增

    对oracle的主键自增 1.用hibernate的方式 第一步,建立表,并设置主键为tableName_id. 第二步,建立sequence视图,sql语句如下 create sequence ta ...

  9. Oracle数据库实现主键自增(利用sequence)和分页查询(利用rownum)

    一.Oracle数据库实现主键自增必须通过sequence来实现 注意:sequence在每次调用nextval就会自增1 create sequence seq_user; --创建一个user表的 ...

最新文章

  1. 编写程序创建一个通讯录文件,在其中存入10位同学的姓名、年龄、电话号码,并在屏幕上输出第2、4、6、8、10位同学的信息
  2. 【一通百通】Bash的单双括号建议:多用[[]], 少用[]
  3. Java 实现MapReduce函数
  4. 项目实战丨某家具公司机房改造方案
  5. 注意指针修饰符的准确含义
  6. linux用pipe创建的文件类型,linux文件类型之 管道
  7. java.util.stream_java.util.stream.Stream 接口中的常用方法
  8. Managing the Activity Lifecycle
  9. kafka buffer.memory参数入门
  10. Redis脚本实现分布式锁
  11. extern 的使用方法介绍
  12. PSpice添加SPICE模型
  13. Openresty 安装luarocks
  14. 公众号两年,粉丝一万,收益五千。
  15. 秋风:教育部办学还是学校办学?
  16. 网络相册(只能本地)
  17. android 自定义圆形头像,android自定义圆形头像
  18. Unity 使用ContentSizeFitter刷新不及时的问题
  19. sqlserver2016修改密码报错-错误: 18456
  20. python实现PCA

热门文章

  1. 5.5.2指令流水线 影响因素分类
  2. 导致谷歌账号停用的原因
  3. 机器学习、深度学习面试知识点汇总
  4. 如何在编译时判断是否支持SSE/SSE2/AVX/AVX2/AVX-512
  5. 利用Python3开发一款小工具(界面的设计)
  6. webservice学习
  7. 每日一句—英语长难句
  8. QQ群78928780记录整理:90523花絮-部分
  9. 如何判断JS中两个对象是否相等?
  10. C++PTA习题总结(三)