使用MyBatisPlus設定Oracle自增id
阿新 • • 發佈:2021-01-30
技術標籤: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;
}