使用MyBatisPlus设置Oracle自增id

前言:
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;

}
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值