Mybatis-Plus Oracle 主键Sequence

在mysql中,主键往往是自增长的,这样使用起来是比较方便的,如果使用的是Oracle数据库,那么就不能使用自增长了,就得使用Sequence 序列生成id值了。

创建表以及序列

-- 创建表,表名以及字段名都要大写
CREATE TABLE "TB_USER" (
"ID" NUMBER ( 20 ) VISIBLE NOT NULL,
"USER_NAME" VARCHAR2 ( 255 BYTE ) VISIBLE,
"PASSWORD" VARCHAR2 ( 255 BYTE ) VISIBLE,
"NAME" VARCHAR2 ( 255 BYTE ) VISIBLE,
"AGE" NUMBER ( 10 ) VISIBLE,
"EMAIL" VARCHAR2 ( 255 BYTE ) VISIBLE 
) 
-- 创建序列
CREATE SEQUENCE SEQ_USER START WITH 1 INCREMENT BY 1

jdbc驱动包

由于版权原因,不能直接通过maven的中央仓库下载oracle数据库的jdbc驱动包,所以我们需要将驱动包安装到本地仓库。

jar包下载地址:https://download.csdn.net/download/weixin_45730091/12614824

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc8 -Dversion=12.1.0.1 -Dpackaging=jar -Dfile=ojdbc8.jar

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc8 -Dversion=12.1.0.1 -Dpackaging=jar -Dfile=C:/Users/js/Desktop/ojdbc8.jar -DgeneratePom=true

安装完成后的坐标

<dependency>
	<groupId>com.oracle</groupId>
	<artifactId>ojdbc8</artifactId>
	<version>12.1.0.1</version>
</dependency>

application.properties

#oracle连接信息:
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
spring.datasource.username=system
spring.datasource.password=123456

#id生成策略
mybatis-plus.global-config.db-config.id-type=input

配置序列

使用Oracle的序列需要做2件事情

  • 第一,需要配置Mybatis-Plus的序列生成器到Spring容器
@Configuration
@MapperScan("cn.com.javakf.mapper") // 设置mapper接口的扫描包
public class MybatisPlusConfig {

	@Bean // 配置分页插件
	public PaginationInterceptor paginationInterceptor() {
		return new PaginationInterceptor();
	}

	@Bean // Oracle的序列生成器
	public OracleKeyGenerator oracleKeyGenerator() {
		return new OracleKeyGenerator();
	}

}
  • 第二,在实体对象中指定序列的名称
@KeySequence(value = "SEQ_USER", clazz = Long.class)
public class User extends Model<User> {
	......
}

测试

@Test
public void testInsert() {
	User user = new User();
	user.setName("刘备");
	user.setAge(30);
	user.setPassword("123456");
	user.setUserName("liubei");
	user.setMail("liubei@163.com");

	// 调用AR的insert方法进行插入数据
	boolean result = user.insert();
	System.out.println("result => " + result);
}

在这里插入图片描述

部署Oracle环境

为了简化环境部署,这里使用Docker环境进行部署安装Oracle。

#拉取镜像
docker pull truevoly/oracle-12c

#创建容器
docker create --name oracle -p 1521:1521 truevoly/oracle-12c

#启动
docker start oracle && docker logs -f oracle

#下面是启动过程
oracle
Database not initialized. Initializing database.
Starting tnslsnr
Copying database files
1% complete
3% complete
11% complete
18% complete
26% complete
37% complete
Creating and starting Oracle instance
40% complete
45% complete
50% complete
55% complete
56% complete
60% complete
62% complete
Completing Database Creation
66% complete
70% complete
73% complete
85% complete
96% complete
100% complete
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/xe/xe.log" for further details.
Configuring Apex console
Database initialized. Please visit http://#containeer:8080/em http://#containeer:8080/apex for extra configuration if needed
Starting web management console

PL/SQL procedure successfully completed.

Starting import from '/docker-entrypoint-initdb.d':
Import finished

Database ready to use. Enjoy! ;)
ls: cannot access /docker-entrypoint-initdb.d/*: No such file or directory

#通过用户名密码即可登录
用户名和密码为: system/oracle

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值