oracle整合mybatis-plus实现ID自增
我们知道mysql数据库是可以直接设置ID自增,但oracle数据库是无法直接设置ID自增,但是我又不想通过自定义sql去实现,所以在网上搜了一下关于mybatis-plus的相关配置,操作很简单,话不多说,直接上具体操作步骤:
1、先在PLsql里创建序列sequence:
create sequence SEQ_ID
minvalue 1 --增长最小值
maxvalue 99999999 --增长最大值,也可以设置nomaxvalue(不设置最大值)
start with 1 --从1开始计数
increment by 1 --自增步长为1
cache 50 --设置缓存cache个序列,如果系统挂掉或者其他意外导致系统序列不连续,也可以设置nocache防止跳号
cycle; --循环,当达到最大值时,不是从start with设置的值开始循环,而是从1开始循环
2、配置mybatis-plus
在MybatisPlusConfig.java里加上代码如下:
@Bean
public IKeyGenerator keyGenerator(){
return new OracleKeyGenerator();
}
3、在entity里加入@keySequence注解
@keySequence(value="SEQ_ID",clazz=String.class)
@TableName("EXAMPLE")
public class GenId{
@TableId("ID")
private String id;
@TableField("TITLE")
private String title;
}
SEQ_ID是PLsql里创建序列的sequence,clazz=String.class需要与主键类型保持一致,主键ID类型是String类型,所以clazz后面也是String类型。
详情可参考:官方文档
sqlplus /nolog //无日志登录
conn / as sysdba //以dba登录数据库中
select instance_name from v$instance; //查看这个orcale中有多少个实例
//查看system中有多少表
SELECT * FROM all_tables WHERE OWNER = ‘system’
//查看当前的所有的表空间
select * from Dba_Tablespaces
//查看当前使用的用户的信息
select * from user_users
//创建的表空间的SQL语句
create tablespace my_user_tablespace logging datafile ‘/home/oracle/app/oracle/oradata/my_user_tablespace .dbf’ size 100m autoextend on next 10m maxsize 2048m extent management local;
//创建用户并指定表空间
create user mysys identified by mysys default tablespace my_user_tablespace;
//给用户赋予权限
grant dba to mysys;