无法使用属性文件连接到Java中的MySql

时间:2014-10-02 08:53:19

标签: java mysql jdbc login properties

我遇到了一个非常奇怪的问题,我不知道如何处理。

我的应用程序连接到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,

戴夫。

更新

何时使用:

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);

它刚刚卡住,没有发布任何错误消息。

2 个答案:

答案 0 :(得分: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 :(得分:0)

下载mysql-connector-java.jar并将其添加到您的类路径中。