1. 程式人生 > 其它 >使用MyBatisPlus設定Oracle自增id

使用MyBatisPlus設定Oracle自增id

技術標籤:mybatis

前言:
Oracle不同於mysql,如果需要設定自增id,網上很多方法是通過觸發器來實現,如果為每一張表都設定觸發器,顯然不合適。通過查詢資料發現了一個比較好的方法,只需要建立一個sequence,編寫自定義註解即可實現。
步驟:
1.為Oracle資料庫表建立sequence,執行sql如下:
create sequence diting_seq start with 1000 increment by 1;

2.編寫自定義註解

import org.springframework.stereotype.Component;
import com.baomidou.
mybatisplus.core.incrementer.IKeyGenerator; import lombok.extern.slf4j.Slf4j; @Slf4j @Component("mybatisPlusKeyGenerator") public class MybatisPlusKeyGenerator implements IKeyGenerator { @Override public String executeSql(String incrementerName) { log.info("執行自定義Key生成器,引數:{}"
,incrementerName); return "SELECT diting_seq.NEXTVAL FROM DUAL"; } }

3.在實體類中使用該註解。並且在主鍵欄位中設定@TableId(type=IdType.INPUT)

@Data
@TableName("api_data")
@Component
@KeySequence("mybatisPlusKeyGenerator")
public class ApiDataEntity implements Serializable {
	private
static final long serialVersionUID = 1L; @TableId(type=IdType.INPUT) private Long id; /** * 檔名 */ private String fileName; /** * json檔案 */ private String jsonFile; /** * 建立時間 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @TableField(fill = FieldFill.INSERT) private Date createdTime; }