準(zhǔn)備
macOS
下載idea\eclipse等IDE
配置好Java環(huán)境
配置好mvn環(huán)境
下載oracle客戶端
為什么要下載客戶端欢策?
雖然測試的時(shí)候可以連接測試服務(wù)器的oracle屋匕,但是oracle的連接方式和mysql等不一樣,不可以直接通過ip、port艰毒、username、password來連接;而是要在客戶端里面配置好服務(wù)器端的網(wǎng)絡(luò)名等參數(shù)丐膝,才可以連接,所以本地一定要下載一個(gè)客戶端。
并且tnsnames.ora里面的連接方式一定要書寫正確帅矗,否則會報(bào)類似以下錯(cuò)誤:ora-12154無法解析指定連接標(biāo)識符
XXXXX=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = XXXX)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
(SERVER = DEDICATED)
)
)
XXXX=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = XXXX)(PORT = 1522))
)
(CONNECT_DATA =
(SERVICE_NAME = dev)
(SERVER = DEDICATED)
)
)
配置oracle環(huán)境變量
啟動(dòng)過程中的問題
- 此時(shí)偎肃,mac中啟動(dòng)項(xiàng)目可能會報(bào)空指針異常,見下圖浑此。此時(shí)是因?yàn)槌绦蜃x取不到系統(tǒng)的環(huán)境變量累颂,如果在確定配置環(huán)境變量的情況下,那么一般是mac系統(tǒng)的GUI 獲取不到環(huán)境變量凛俱,有以下幾種解決辦法:
![`0ND[2~H6867UJUVW70VT5.jpg
① 使用終端打開IDE,
open /Application/XXX.app
保證IDE讀取的環(huán)境變量和終端讀取的環(huán)境變量相同
②使用github上開源的osx-env-sync修復(fù)GUI的問題
- 環(huán)境變量可以讀取之后紊馏,往下執(zhí)行代碼,會報(bào) no ocijdbcXX in java.library.path的錯(cuò)誤蒲犬,這個(gè)錯(cuò)誤主要是因?yàn)檎也坏給cijdbcXX的資源朱监,如果是win的話,直接將.dll文件放入c盤System32下面原叮,就可以加載讀取到赫编。但是在mac下,是.dylib文件奋隶。有以下幾種辦法解決:
① 拷貝你的libxxx到j(luò)ava.library.path指向的某個(gè)目錄下面,使用以下命令獲取path路徑
System.out.println(System.getProperty("java.library.path"));
②利用環(huán)境變量擂送,設(shè)置LD_LIBRARY_PATH來添加Java path
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME export LD_LIBRARY_PATH
還有一些其他的辦法,因?yàn)闆]有嘗試就沒有列出來唯欣,這樣团甲,就可以找到正確的資源依賴,可以成功連接數(shù)據(jù)庫
其他參考:
https://stackoverflow.com/questions/11838219/java-system-getenv
https://www.jb51.net/article/126947.htm
https://www.cnblogs.com/huhu0013/p/4506013.html
https://blogs.sap.com/2015/10/27/mac-os-x-environment-variables-and-sap-gui-for-java/