2014-10-02 58 views
0

我遇到了一個非常奇怪的問題,我不知道如何處理。無法連接到Java的MySql與屬性文件

我的應用程序連接到MySQL數據庫獲取數據,直到昨天我有連接的詳細信息中的代碼硬編碼,和一切工作正常。

IE:

connect = DriverManager.getConnection("jdbc:mysql://10.0.0.188:3306", "dudug", "qazqaz"); 

我已決定把我的應用程序更加模塊化,並有一個選項來改變/設置連接的詳細信息,並將其存儲在一個屬性文件。

現在,當我使用下面的代碼:

Class.forName("com.mysql.jdbc.Driver"); 

// setup the connection with the DB. 

String user = props.getProperty("SqlUserName"); 
String pass = props.getProperty("SqlPassword"); 
String port = String.valueOf(props.getProperty("SqlPort")); 
String addr = props.getProperty("SqlAddress"); 
connect = DriverManager.getConnection("\"jdbc:mysql://" + addr + ":" + port + "\",\"" + user + "\",\"" + pass + "\""); 

,我得到一個錯誤信息是這樣的:

java.sql.SQLException: No suitable driver found for "jdbc:mysql://10.0.0.188:3306?user=dudug&password=qazqaz" 
at java.sql.DriverManager.getConnection(Unknown Source) 
at java.sql.DriverManager.getConnection(Unknown Source) 

調試時,無論是輸出連接字符串的是相同:

「jdbc:mysql://10.0.0.188:3306」,「dudug」,「qazqaz」

只有當我使用模塊化字符串時出現問題。

任何人有什麼想法?

Thnaks,

戴夫。

UPDATE:

當使用此:

DriverManager.getConnection("jdbc:mysql://" + props.getProperty("SqlAddress") + ":" + String.valueOf(props.getProperty("SqlPort")) 
+ "," + props.getProperty("SqlUserName") + "," + props.getProperty("SqlPassword")); 

或本:

String user = props.getProperty("SqlUserName"); 
String pass = props.getProperty("SqlPassword"); 
String port = String.valueOf(props.getProperty("SqlPort")); 
String addr = props.getProperty("SqlAddress"); 

connect = DriverManager.getConnection("jdbc:mysql://" + addr + ":" + port + "," + user + "," + pass); 

它只是卡住,發佈錯誤消息。

+0

你需要在你的類路徑中的MySQL連接。從http://dev.mysql.com/downloads/connector/j/5.1.html下載它 – 2014-10-02 08:55:13

+0

這是什麼意思? – 2014-10-02 08:55:36

+0

是否將mysql連接器庫添加到庫文件中? – CodeMonkey 2014-10-02 08:56:04

回答

1

問題是,您正嘗試構建getConnection()方法的參數列表。

"\"jdbc:mysql://" + addr + ":" + port + "\",\"" + user + "\",\"" + pass + "\""); 

評估爲

"jdbc:mysql://10.0.0.188:3306","dudug","qazqaz" 

這是一個String,即使它看起來像一個正常的參數列表。例如。這個被調用:

DriverManager.getConnection("\"jdbc:mysql://10.0.0.188:3306\",\"dudug\",\"quazquaz\""); 

DriverManager.getConnection("jdbc:mysql://10.0.0.188:3306", "dudug", "qazqaz"); 

你想要做的是:

String url = "jdbc:mysql://" + addr + ":" + port; 
DriverManager.getConnection(url, user, password); 
1

下載mysql-connector-java.jar並將其添加到您的類路徑中。

+0

它已經存在:「MySQL-connector-java-5.1.33-bin.jar」,當使用prop文件中的數據時,我可以連接到MySQL! – 2014-10-02 09:04:02