有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

无法使用属性文件连接到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);

它只是被卡住了,没有发布错误消息


共 (2) 个答案

  1. # 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);
    
  2. # 2 楼答案

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