Spring boot 在 linux 下使用 Mybatis 连接 Docker 中的 Oracle12c 数据库

上一篇已经使用 Mysql 数据库成功的连接了数据。但因为老师要求我们这次的项目是要是要 Oracle 做的。所以还需使用 Oracle 配置一遍。
但 Oracle 在 win 界面下的配置比较繁琐。使用最后决定采用在 Docker 下使用 Oracle12c。将 Docker 中的 1521 端口映射到本机的 1521 端口中。
开发环境是 Linux, 因为装 Docker 比较方便一点。当然你也可以使用 win 下面的 Docker-tool 进行相同的操作。

项目准备

  1. Docker
  2. 数据库连接工具 (我使用的是 IDEA 自带的数据库管理工具)

下载镜像

Docker 的使用方法这里就不做详细解释了,具体可以看 Docker — 从入门到实践

  1. 首先再 dockerhub 中查找镜像
  2. 使用docker pull sath89/oracle-12c拉取这个优质镜像(大小有4-5g)

运行镜像

使用docker run -d -p 8081:8080 -p 1521:1521 sath89/oracle-12c 运行镜像,这个操作会把本机8081端口映射到容器里的8080端口,本机1521端口连接容器里数据库的1521端口。
具体的这个镜像的说明可以看这个镜像作者写的镜像说明
运行上面的操作指令的时候,因为 docker 内安装 Oracle 还需要一段时间,所以要等一会.
你也可以使用 docker logs -f [这里填你容器的id] 查看目前安装的进度
容器进度

进入 Oracle 终端

docker ps 查看 容器id
查看容器

然后 使用 docker exec -it [你的容器id] /bin/bash 进入容器

创建新的 Oracle 用户

因为 Oracle 和 MYSQL 这些不同,他是一个用户对应一个库,所以我们要先创建用户然后把库给他。
!! 这里有个坑就是,你的用户名前面一定要带 c## ,要不然这个用户是其他模式的,非常难用。

  1. 首先再刚才进入的终端中输入sqlplus 进入 Oracle 的命令操作界面
  2. 然后输入用户名 :sys/oracle as sysdba
  3. 输入startup启动 Oracle
  4. create user c##用户名 identified by 密码; 创建用户,用户名和密码换成自己的,下同。
  5. alter user c##用户名 account unlock; 解锁
  6. grant create session to c##用户名; 给权限
  7. grant dba to c##用户名;
  8. GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW , DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,DBA,CONNECT,RESOURCE,CREATE SESSION TO c##用户名; 给权限
  9. 然后就把这个用户创建好了。

连接数据库

在 idea 中接可以这样连接。其他数据库连接工具也一样
idea连接
这里的用户名和密码就是自己刚才设置的。
连接
然后这里创建表就可以用了。
创建表

配置 Spring boot

数据库算是搞完了。那我们还要用 Spring boot连接数据库。
在application.properties中配置自己的数据库连接

1
2
3
4
5
6
// resources/application.properties

spring.datasource.url=jdbc:oracle:thin:@127.0.0.1:1521:xe
spring.datasource.username=c##用户名
spring.datasource.password=密码
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver

然后Maven仓库加 Oracle 的驱动,因为Oracle 商用,Maven未授权,所以要自己导入。

1
2
3
4
<dependency>
<groupId>oracle</groupId>
<artifactId>ojdbc6</artifactId>
</dependency>

xml里加这句后,再导入Oracle 的jar包。

导入jar包

导入jar包

然后找到自己下载的Oracle jar包导入进去,就可以使用了,这里要感谢cw同学的指导。

测试

先在数据库中插入数据。
运行之后,像上一篇那样输入地址获取用户数据,如果获取成功就可以了。

以后再次启动 docker 中的 oracle

因为我们不是只使用这一次,以后还要再使用就需要再次启动 docker 然后连接 oracle。

  1. docker ps -a 这个命令可以看已经关闭的容器 意关闭容器
  2. docker start [你的容器id] 然后把上面查询到的容器id启动起来。
    这样我们的 Oracle 服务就又启动起来了。是不是比 win 下面直接安装干净不少。