上一篇已经使用 Mysql 数据库成功的连接了数据。但因为老师要求我们这次的项目是要是要 Oracle 做的。所以还需使用 Oracle 配置一遍。
但 Oracle 在 win 界面下的配置比较繁琐。使用最后决定采用在 Docker 下使用 Oracle12c。将 Docker 中的 1521 端口映射到本机的 1521 端口中。
开发环境是 Linux, 因为装 Docker 比较方便一点。当然你也可以使用 win 下面的 Docker-tool 进行相同的操作。
项目准备
- Docker
- 数据库连接工具 (我使用的是 IDEA 自带的数据库管理工具)
下载镜像
Docker 的使用方法这里就不做详细解释了,具体可以看 Docker — 从入门到实践
- 首先再
dockerhub
中查找镜像 - 使用
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## ,要不然这个用户是其他模式的,非常难用。
- 首先再刚才进入的终端中输入
sqlplus
进入 Oracle 的命令操作界面 - 然后输入用户名 :sys/oracle as sysdba
- 输入
startup
启动 Oracle create user c##用户名 identified by 密码;
创建用户,用户名和密码换成自己的,下同。alter user c##用户名 account unlock;
解锁grant create session to c##用户名;
给权限grant dba to c##用户名;
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##用户名;
给权限- 然后就把这个用户创建好了。
连接数据库
在 idea 中接可以这样连接。其他数据库连接工具也一样
这里的用户名和密码就是自己刚才设置的。
然后这里创建表就可以用了。
配置 Spring boot
数据库算是搞完了。那我们还要用 Spring boot连接数据库。
在application.properties中配置自己的数据库连接
1 | // resources/application.properties |
然后Maven仓库加 Oracle 的驱动,因为Oracle 商用,Maven未授权,所以要自己导入。
1 | <dependency> |
xml里加这句后,再导入Oracle 的jar包。
然后找到自己下载的Oracle jar包导入进去,就可以使用了,这里要感谢cw同学的指导。
测试
先在数据库中插入数据。
运行之后,像上一篇那样输入地址获取用户数据,如果获取成功就可以了。
以后再次启动 docker 中的 oracle
因为我们不是只使用这一次,以后还要再使用就需要再次启动 docker 然后连接 oracle。
docker ps -a
这个命令可以看已经关闭的容器docker start [你的容器id]
然后把上面查询到的容器id启动起来。
这样我们的 Oracle 服务就又启动起来了。是不是比 win 下面直接安装干净不少。