2013-04-13 33 views
0

這裏是我的代碼:Java將無法連接到我的數據庫

import java.sql.*; 

public class DBConnector { 
private static Connection conn; 

public static void connectToDB() 
{ 
//load the driver 
try 
{ 
Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver"); 
System.out.println ("Driver successfully loaded"); 
} 
catch (ClassNotFoundException c) 
{ 
System.out.println ("Unable to load database driver"); 
} 

//connect to the database 
try 
{ 
String filename = "TopYouTubeVideos.mdb"; 
String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="; 
database += filename.trim() + ";DriverID=22;READONLY=true}"; 
conn = DriverManager.getConnection (database, "", ""); 
System.out.println ("Connection database successfully established"); 
} 
catch (Exception e) 
{ 
System.out.println ("Unable to connect to the database"); 
} 

} 

輸出是:

驅動程序加載成功

無法連接到數據庫

這工作在與我的不同的計算機上,通過完全相同的代碼連接到數據庫...有沒有人有任何想法爲什麼?

感謝提前:)

編輯:我運行Access 2007年,64位Windows 7 通過檢查錯誤,我得到:值java.sql.SQLException:[微軟] [ODBC驅動程序管理器]數據源名稱未找到,沒有指定默認驅動程序

從一點研究看來,這是我的'數據源名稱'的問題。我把我的數據庫文件放在項目文件夾中,名稱是正確的。爲什麼沒有找到它?

編輯:不,數據庫是兩臺計算機上相同。在同一個文件夾中。

編輯:我想我可能需要創建一個系統dsm。按照互聯網dosent工作說明雖然,因爲我沒有相同的文件,因爲他們..

編輯:我試過安裝,但它並沒有改變。我的版本訪問是64位與我的NetBeans版本一起。

+0

是計算機操作系統,你得到了失敗的Windows? –

+5

您必須打印異常堆棧跟蹤而不是僅僅打印文本消息,請嘗試'e.printStackTrace()'以查看正在發生的事情...... – home

+0

您是否在兩臺計算機上使用不同的數據庫系統? DriverManager.getConnection()的字符串並不總是與數據庫系統相同。 –

回答