Java數據庫連接(JDBC)之連接失敗問題彙總

目錄

文中儲備知識:

1.JDBC

2.兩種常見的JDBC

      (1)JDBC-ODBC橋方式

      (2)純Java方式

3.DSN

4.JDBC操作的步驟

 

一、JDBC配置問題

1.JDBC-ODBC橋方式

2.純Java方式

二、名字不匹配

(1)數據庫名

(2)數據庫對應的用戶名

(3)表名

(4)表名中的屬性名

         (5)與ODBC方法相關的數據源名

三、數據庫連接代碼


文中儲備知識:

1.JDBC

JDBC是Java數據連接技術(Java Database Connection)的簡稱,提供連接各種常用數據庫的能力。

•JDBC驅動由數據庫廠商提供
–在個人開發與測試中,可以使用JDBC-ODBC橋連方式
–在生產型開發中,推薦使用純Java驅動方式

2.兩種常見的JDBC

(1)JDBC-ODBC橋方式

使用JDBC-ODBC橋方式連接數據庫

將對JDBC API的調用,轉換爲對另一組數據庫連接API的調用
優點:可以訪問所有ODBC可以訪問的數據庫
缺點:執行效率低、功能不夠強大

(2)純Java方式

使用純Java方式連接數據庫

JDBC驅動直接訪問數據庫
優點:100% Java,快又可跨平臺
缺點:訪問不同的數據庫需要下載專用的JDBC驅動

但是,經過實踐操作,大多數同學都覺得純Java方式連接數據庫的成功率更高些,使用JDBC-ODBC橋常連接失敗(不知道是不是操作流程的問題)。

3.DSN

  • 數據源的定義:

數據源的英文是DSN(Data Source Name),它是一種用來提高數據庫連接性能的常規手段。

  • 數據源的作用:

“數據庫建立好之後,要設定系統的 DSN(數據來源名稱),才能讓網頁可以知道數據庫所在的位置以及數據庫相關的屬性。使用DSN的好處還有,如果移動數據庫檔案的位置,或是換成別種類型的數據庫,只要重新設定 DSN 就好了,不需要去修改原來使用的程序。”

4.JDBC操作的步驟:

  1、 加載驅動程序
  2、 連接數據庫
  3、 操作數據庫
  4、 關閉數據庫,釋放連接

參考資料:

https://blog.csdn.net/lxw1844912514/article/details/100028770

https://www.cnblogs.com/cainame/p/10339294.html

https://blog.csdn.net/cuiwjava/article/details/20202859


一、JDBC配置問題

1.JDBC-ODBC橋方式

(1)配置ODBC橋的流程中出問題

A.數據源(DSN)配置

在電腦中的 “控制面板——系統和安全——管理工具——數據源(ODBC)” 中配置ODBC橋的數據源

  • 注1:數據源的英文DSN(Data Source Name)
  • 注2:配置過程中的DSN名稱需要記住,用於後面用Java寫數據庫連接代碼中的創建連接()

private Connection conn; 

conn=DriverManager.getConnection("jdbc:odbc:DSN名稱","用戶名","密碼");

  • a. 沒有選擇與代碼中相匹配的用戶登錄ID和密碼

因爲在配置數據源的過程中,需要在

“用戶輸入登錄ID和密碼的SQL Server 驗證”下

輸入在數據庫創建的用戶及其對應密碼

  • b. 沒有選擇與代碼中相匹配的數據庫

因爲在配置數據源的過程中,需要選擇該用戶操作的數據庫

數據源的配置過程可參考:

https://blog.csdn.net/qq_41187714/article/details/103494367

 

2.純Java方式

(1)JDBC驅動包與數據庫不匹配

比如 Microsoft SQL Server 2008 R2數據庫可以下載sqljdbc4驅動包

(2)添加驅動包的方法不正確

可以右鍵項目名——Build Path——Config Build Path...——Java Build Path ——Libraries——Add JARs或AddExternal JARS——OK

(3)驅動包路徑不對

常見於拷貝了別人的項目到自己的電腦裏

修改驅動包路徑的方法:在項目中重新加載驅動包,即可以重新添加驅動包

添加jar包方法可參考:
https://www.cnblogs.com/yhmdjl/p/6485303.html

注:

JAR(Java Archive)是Java的一種壓縮文檔格式

 

二、名字不匹配

主要是數據庫中的設置與代碼中的不匹配

(1)數據庫名

(2)數據庫對應的用戶名

(3)表名

比如 數據庫中的表名是tblXyInfo,而 Java代碼中寫的是卻是tblXyxx

(4)表名中的屬性名

比如 數據庫中的學院信息表 tblXyInfo 中有代碼XyId、名稱XyName、狀態XyState、添加時間XyTime這幾個屬性。

注意:

(1)大小寫的區分

(2)“同義詞”

比如:學院信息表

tblXyInfo ——table xue yuan information

tblXyxx ——table xue yuan xin xi

(5)與ODBC方法相關的數據源名

 

三、數據庫連接代碼

除了編譯中報的語法錯誤外,還可能存在如下問題:

1.沒有實例化對象

常會編寫一個xxxHelper.java 然後再實例化這個類的對象。
 

private OdbcHelper helper;//在類中定義成員

//private MssHelper helper;



helper = new OdbcHelper();//在類的方法中實例化這個成員
//helper = new MssHelper();

注:

OdbcHelper.java中存放 ODBC橋連接數據庫的代碼。(需配置數據源)

MssHelper.java中存放 直連數據庫的代碼。(需加載驅動包)

 

本篇文章將會持續更新....

 

 

發佈了23 篇原創文章 · 獲贊 3 · 訪問量 3720
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章