Springboot+MybatisPlus+Oracle實現(xiàn)主鍵自增的示例代碼
上周周一,本來剛過完周末,高高興興,老大突然安排了個活,要在一天內(nèi)把項目的MySQL數(shù)據(jù)庫換成Oracle數(shù)據(jù)庫,我們都知道這是不可能完成的任務(wù),但是,秉承著“沒有困難的工作,只有不努力的打工人”的精神,我們馬上投入了工作,第一步當(dāng)然是先配置數(shù)據(jù)庫、oracle建表,這個解決調(diào)試了一上午,然后下午卡到oracle主鍵了,所有人網(wǎng)上找方法,一直到第二天凌晨3點(diǎn)半都還沒解決,網(wǎng)上方法很多,試了好多都不管用,終于第二天才找到了滿足的方法。
廢話不多說,下面貼出。
application.yml配置
# Mybatis的相關(guān)配置mybatis-plus: mapper-locations: classpath*:com/XX/XX/XX/dao/mapping/*.xml typeAliasesPackage: com.XX.XX.XX.model global-config: #主鍵類型 0:'數(shù)據(jù)庫ID自增', 1:'用戶輸入ID',2:'全局唯一ID (數(shù)字類型唯一ID)', 3:'全局唯一ID UUID'; id-type: 1 #序列接口實現(xiàn)類配置 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相對應(yīng)
sequenceName即你在oracle數(shù)據(jù)庫中為此表創(chuàng)建的自增序列名(貌似框架無法自動生成,需要自己手動創(chuàng)建)
這樣,主鍵ID插入null值的問題基本解決了,但是我們的Mapper繼承了tk.mybatis.mapper.common.Mapper,插入是直接調(diào)tk.Mapper的insertSelective(T var1)方法,有時候我們需要插入后的主鍵id,這種方法沒辦法得到,所以只能手寫insert方法,如下。
<insert 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>標(biāo)簽中加入order=’BEFORE’即可在插入完成后返回主鍵。
到此這篇關(guān)于Springboot+MybatisPlus+Oracle實現(xiàn)主鍵自增的文章就介紹到這了,更多相關(guān)Springboot+MybatisPlus+Oracle實現(xiàn)主鍵自增內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. CSS3實例分享之多重背景的實現(xiàn)(Multiple backgrounds)2. 使用Spry輕松將XML數(shù)據(jù)顯示到HTML頁的方法3. php網(wǎng)絡(luò)安全中命令執(zhí)行漏洞的產(chǎn)生及本質(zhì)探究4. XHTML 1.0:標(biāo)記新的開端5. ASP基礎(chǔ)知識VBScript基本元素講解6. 利用CSS3新特性創(chuàng)建透明邊框三角7. XML入門的常見問題(四)8. asp(vbscript)中自定義函數(shù)的默認(rèn)參數(shù)實現(xiàn)代碼9. 詳解CSS偽元素的妙用單標(biāo)簽之美10. HTML5 Canvas繪制圖形從入門到精通
