SpringBoot+SpringDataJpa 整合Oracle數據庫

SpringBoot+SpringDataJpa 整合Oracle數據庫

1. 驅動下載

由於oracle沒有授權,所以不能從Maven倉庫裏面直接下載。需要先去官網下載之後使用。
這裏的連接不是官網的,但是工具包是從官網上下載的。
下載連接
下載完成後,上傳至公司內部的maven倉庫,配置好就可以使用了。

在Oracle 數據庫中,一個用戶就對應一個數據庫。數據庫的創建方式也不同於sql server 和Mysql數據庫

#創建用戶
#create user username identified by password;
#創建了一個用戶名爲root密碼爲123456的用戶
create root username identified by 123456;

#創建表空間
---查看錶空間位置
Select * FROM DBA_DATA_FILES;
# 查看到表空間位置才能知道數據庫的文件是存放在哪裏的

# 創建表空間
# create tablespace tablespacename datafile 'd:\\data.dbf' size xxxm;
-- tablespacename 表空間名稱
-- d:\\data.dbf 是表空間的位置。
-- xxxm 表示表空間的大小,單位爲兆
create tablespace ships datafile '/user/data/ships.dbf' size 512m;

# 分配表空間給指定的用戶。
#alter user username default tablespace tablespacename;
alter user root default tablespace ships;

按照上述步驟操作就可以了,
可能會出現不能登錄的情況 提示是 can not create session 之類的提示語句
說明我們沒有給這個用戶授權創造連接的session
系統用戶登錄之後對其進行授權

#grant create session to username;
grant create session to root;

這樣就可以在Native上進行登錄了

2. 配置

spring boot 配置文件

#Oracle 配置
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
# Oracle settings
#這裏不需要指定哪個數據庫,因爲oracle一個用戶就對應一個數據庫
# 這裏的連接方式是SID方式 格式如下,SID爲空就可以不寫
#jdbc:oracle:thin:@<host>:<port>:<SID>
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:xe
spring.datasource.username=root
spring.datasource.password=123456

# JPA 相關配置
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

3. 填坑

在啓動程序時提示了 ORA-00942: 表或視圖不存在 在向上翻看日誌發現是 ORA-01031: 權限不足 導致JPA沒有自動創建成功相關的表
這是由於我們創建的用戶沒有相關的權限導致的
所以還是要用系統用戶進行登錄,執行下面的語句,授予所有權限給指定的用戶。

#grant all privileges to username
grant all privileges to root;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章