You need to enable JavaScript to run this app. Spring Boot本地开发使用Testcontainers的Oracle-xe作为数据库问题咨询
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot本地开发使用Testcontainers的Oracle-xe作为数据库问题咨询

本地开发环境使用Testcontainers Oracle XE的落地实现方案

完全可落地,可按照以下逻辑调整配置:

  • 脱离Spring Boot Test的Testcontainers生命周期绑定,单独编写仅在develop profile生效的配置类,使用@Configuration + @Profile("develop")注解标注,手动声明OracleContainer的Bean实例
  • 开启Testcontainers复用能力:首先在本地用户根目录下的.testcontainers.properties配置文件中添加testcontainers.reuse.enable=true,之后在OracleContainer实例初始化时调用.withReuse(true)方法,应用重启时会自动复用正在运行的容器实例,不会重复创建销毁
  • 如需数据持久化存储,可给容器添加本地目录挂载,调用.withFileSystemBind("本地自定义存储路径", "/opt/oracle/oradata"),即使容器被删除,下次启动挂载同一目录即可恢复原有数据
  • 开发场景下无需主动调用容器的stop方法,容器会在后台持续运行,供本地应用调用
表空间权限问题解决方案

报错原因是你创建的PM3用户没有分配SYSTEM表空间的使用配额,且Oracle不建议普通业务用户使用SYSTEM表空间存储业务数据,调整初始化脚本即可:

-- 创建用户时指定默认业务表空间为USERS,临时表空间为TEMP
CREATE USER PM3 IDENTIFIED by PM3 DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP;
-- 授予用户基础连接、资源操作权限
GRANT CONNECT, RESOURCE TO PM3;
-- 授予用户USERS表空间的使用配额,可根据需要调整为固定大小如QUOTA 500M ON USERS
ALTER USER PM3 QUOTA UNLIMITED ON USERS;

CREATE TABLE PM3.JOBS (
    JOB_ID NUMBER(3) NOT NULL,
    CUSTOMER_ID NUMBER(3) NOT NULL,
    DESCRIPTION VARCHAR(200),
    constraint PK_JOB_ID primary key (JOB_ID)
);

内容的提问来源于stack exchange,提问作者user1555190

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 04:51:02