时间:2021-05-20
上周周一,本来刚过完周末,高高兴兴,老大突然安排了个活,要在一天内把项目的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.OracleKeyGeneratormodel实体类配置(仅展示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方法,如下。
<insert id="add" keyColumn="ID" keyProperty="id" parameterType="com.XX.XX.XX.model.POJO" useGeneratedKeys="true"> <selectKey resultType="int" order="BEFORE" keyProperty="id"> SELECT POJO_SEQ.nextval id FROM DUAL </selectKey> 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})</insert>注:<selectKey>标签中加入order='BEFORE'即可在插入完成后返回主键。
到此这篇关于Springboot+MybatisPlus+Oracle实现主键自增的文章就介绍到这了,更多相关Springboot+MybatisPlus+Oracle实现主键自增内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
区别:1、主键,Oracle不可以实现自增,mysql可以实现自增。oracle新建序列,SEQ_USER_Id.nextval2、索引:mysql索引从0开始
一、Oracle的主键Sequence设置简介在Oracle数据库中不支持主键自增策略,它是通过Sequence序列来进行完成的,因此需要在MP中进行相关配置二
一、需求:实现Springboot中MyBatisplus使用IPage和Page分页二、技术:MyBatisplus的IPage和Page三、实现1、代码结构
项目使用springboot搭建。最初的时候是使用mybatis,后来升级到mybatisplus。按照mp的官网介绍,使用mp的insert方法,对于自增的数
这篇文章主要介绍了Springboot整合MybatisPlus的实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要