最近鬼使神差的打起了jdbc的主意,原因是需要在軟體裡整合oracle驅動
這是一個常見問題,但是俺不準備以常見方式解決
常見方式不外乎弄個“精簡”的oracle用戶端(需要寫註冊表)或者用oracle出的直連用戶端(需要配置tnsname檔案)
或者乾脆整合oracle的odbc驅動(需要註冊和配置)
俺用powerbuilder,常見方式都用過,這次準備對pb10.5支援的jdbc用功,心路曆程如下:
1、在本地配置oracle的jdbc,成功(需要在pb裡設定jvm和classpath)
2、在生產環境實施:安裝jre、設定JAVA_HOME/CLASSPATH(都是說明裡寫的,沒什麼特別)
3、開始簡化
A、jre問題:jre不用安裝,設定JAVA_HOME就行。
於是把jre目錄copy到程式目錄,無意中發現,只要名字叫jre,不用設定JAVA_HOME,也可以找到(竊喜,後來得知大部分用的jre的軟體都可以這樣)
B、classpath問題:classpath必須設定,不然無法找到jdbc驅動(書上、網上都是這麼寫的)
可是俺不願意這麼幹,原因嘛,因為比較麻煩(廢話)
於是開動腦筋,經測試得知,如果把jdbc驅動的.jar檔案放到程式運行目錄中,可以找到
本以為解決問題了,後來發現,如果目錄名是中文的,還是找不到(萬惡的拉丁文字)
再次開動腦筋(俺不會別的)
發現jvm初始化時會載入rt.jar中的檔案(俺臆斷rt就是runtime的意思),察知現在好多人都在試圖精簡rt.jar,大部分是為部署方便
又發現.jar檔案就是zip格式的(俺孤陋寡聞,這個全世界都知道)
於是。。。。。。
C、中途很不巧的遇到pb自己的jdbc支援庫中一個jar檔案也會在中文目錄的情況下找不到
遇神殺身、遇佛殺佛
4、jdbc應用經驗
用jdbc的好處是不用註冊、配置,相容性強
缺點是:
a、啟動稍慢,不過現在的電腦,只是延遲半秒左右,可以忽略
b、pb自己的資料庫畫板無法使用全部jdbc特性,設計時效率較低,但執行沒問題
c、軟體包比原來要大,但是可以通過精簡jre縮小,不過據說sun不高興俺們這樣做