无法使用属性文件连接到java中的MySql
我遇到了一个非常奇怪的问题,我不知道如何处理
我的应用程序连接到MySQL数据库来获取数据,直到昨天我才在代码中硬编码了连接细节,一切正常
即:
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”
只有在使用模块化字符串时才会出现问题强>
有人知道吗
蒂纳克斯
戴夫强>
更新:
何时使用此选项:
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);
它只是被卡住了,没有发布错误消息
# 1 楼答案
问题是,您正在尝试构建
getConnection()
方法的参数列表评估为
这是一个
String
,即使它看起来像一个普通的参数列表。例如,这被称为:而不是
您要做的是:
# 2 楼答案
下载
mysql-connector-java.jar
并将其添加到类路径中