在Springboot项目中使用MybatisPlus和Oracle实现主键ID的自增
发布时间:2020-11-18 15:49:35
来源:亿速云
阅读:125
作者:Leah
在Springboot项目中使用MybatisPlus和Oracle实现主键ID的自增?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
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'即可在插入完成后返回主键。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。