台灣最大程式設計社群網站
線上人數
926
 
會員總數:243865
討論主題:188351
歡迎您免費加入會員
討論區列表 >> Java >> JDBC for MS-SQL Version Issue
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
JDBC for MS-SQL Version Issue
價值 : 0 QP  點閱數:41 回應數:0

樓主

JavaHand
門外漢
0 2
12 2
發送站內信

1. 因使用 GlassFish 5,故 Java 使用 8u144。
這是安裝執行在一台 Windows Server 上。
JDBC for MS-SQL 使用 7.0 jre8 的 jar 檔。
GlassFish 的 Connection Pools 中的 [Ping] 能成功。
MS-SQL 安裝在另一台 Server 上。版本為 Express 11.0.2100.60

2. 原本開發用電腦軟硬體如下
一般 Windows 10 + Java 8u144 + NetBeans 8.2 win + JDBC for MS-SQL 7.0 jre8
能成功建立資料庫連結,並能經由 Plug-In 自 DB 產生 Entity 與 Web Services

3. 後來改用電腦軟硬體如下
MBA Mojave 10.14.2 + Java 11 + NetBeans 10 mac + JDBC for MS-SQL 7.0 jre10
能成功建立資料庫連結,但無法經由手動安裝的 Plug-In 自 DB 產生 Entity 與 Web Services

Plug-In 無法產生 Entity 我也無則,那只能把 NetBeans 改回使用 8.2。於是軟硬體環境如下
MBA Mojave 10.14.2 + Java 11 + NetBeans 8.2 jee mac + JDBC for MS-SQL 7.0 jre10
這樣的組合,連 NetBeans 的 Projects 與 Service 視窗都開不起來。

因為 Java 8 與 NetBeans 8.2 算是哥倆好,之前都有提供 Bundle 下載。
所以再把 Java 降回 8u144,選這個版本是想說跟 Server 端 GlassFish 使用的 Java 一致。

MBA Mojave 10.14.2 + Java 8u144 + NetBeans 8.2 jee mac + JDBC for MS-SQL 7.0 jre10
Java 降回 8 後,NetBeans 正常了。但怎麼搞,在 DB Connection 部份都會出現以下資訊
--------
Cannot establish a connection to jdbc:sqlserver://[IP]\
SQLEXPRESS:1433;databaseName=ACS using com.microsoft.sqlserver.jdbc.SQLServerDriver (連接到主機 [IP] (連接埠 1433) 的 TCP/IP 連接已經失敗。錯誤: "null。確認連接屬性。確認 SQL Server 執行個體是否在主機上執行並接受在通訊埠的 TCP/IP 連接。確認防火牆未封鎖通訊埠的 TCP 連接。"。)
--------

網路上查了半天,都說 SQL Server 要開啟 TCP/IP。但上面項目 2. 與 3. 在資料庫連結是能成功的。

就在快要無計可施的情況下,想說剛 NetBeans 10 中的 DB 是能連結成功的。那再把 NetBeans 10 叫起來看看。
MBA Mojave 10.14.2 + Java 8u144 + NetBeans 10 mac + JDBC for MS-SQL 7.0 jre10
試著建立 DB Connection,結果出現以下訊息。
--------
SQLServerDriver has been compiled by a more recent version of the Java Runtime (class file version 54.0), this version of the Java Runtime only recognizes class file versions up to 52.0
--------

意思就是說 8u144 無法使用 jre10 編譯出的 Class。

好吧,那就把 jre10 換成 jre8
MBA Mojave 10.14.2 + Java 8u144 + NetBeans 10 mac + JDBC for MS-SQL 7.0 jre8
上面的組合也出現 Cannot establish 的錯誤訊息。

啊∼∼哇歹命啊∼∼∼∼
我在 Windows 下開發都無問題的組合,到了 Mac 上就無法建立資料庫連線,這是什麼道理
就在走投無路之下,想到 Java Class 有分 jre10 與 jre8,那 JDBC 是否也有版本的差異?

嗯,死馬當活馬醫,上微軟網站下載前一個版本的 JDBC 試試。於是環境來到了
MBA Mojave 10.14.2 + Java 8u144 + NetBeans 8.2 jee mac + JDBC for MS-SQL 6.4 jre8
耶∼∼過了耶,DB Connection 測試成功。

但不知開發用 6.4,Runtime 用 7.0 會不會有問題。
祝我好運囉







搜尋相關Tags的文章: [ JDBC ] , [ NetBeans ] ,
本篇文章發表於2019-01-11 12:21
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
目前尚無任何回覆
   

回覆
如要回應,請先登入.