我遇到了一个非常奇怪的问题,我不知道如何处理。
我的应用程序连接到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);
它刚刚卡住,没有发布任何错误消息。
答案 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
并将其添加到您的类路径中。