当前位置: 首页 > 知识库问答 >
问题:

变量传递给DriverManager。getConnection()不工作

宰父保臣
2023-03-14

我正在尝试使用JDBC连接到MySQL。如果我将url、用户名和密码的硬代码值传递给DriverManager,我会有一个奇怪的行为。getConnection()与数据库的连接正常。但如果我将参数作为变量传递,则与JDBC的连接失败,并出现以下错误。

JAVAsql。SQLException:找不到适用于“jdbc:mysql://localhost:3306/hplus"

FileInputStream fis = new FileInputStream(path+"config.properties");
    Properties prop = new Properties();
    prop.load(fis);
    String url = prop.getProperty("url");
    String username = prop.getProperty("username");
    String password = prop.getProperty("password");
    
    System.out.println(url);
    System.out.println(username);
    System.out.println(password);
    conn=DriverManager.getConnection(url, username, password);
    //conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/hplus","root","123Nbr@");;
    
    }catch(Exception e) {
        System.out.println(e);
    }
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
"jdbc:mysql://localhost:3306/hplus"
"root"
"123Nbr@"
java.sql.SQLException: No suitable driver found for "jdbc:mysql://localhost:3306/hplus"

共有1个答案

曾鸿振
2023-03-14

我认为您还没有完全掌握的语法。属性文件。

您的问题中没有包含属性文件,但我猜您的属性文件如下所示:

url="jdbc:mysql://localhost:3306/hplus"
username="root"
password="123Nbr@"

问题是引号。它们不应该在那里。读取属性文件时,引号不会被删除,它们最终会出现在您的网址、用户名和密码中。从您的输出中也可以清楚地看到这些引号的存在。

由于这些引用,您基本上是在运行:

conn=DriverManager.getConnection("\"jdbc:mysql://localhost:3306/hplus\"","\"root\"","\"123Nbr@\"");

如果需要,您可以验证这一行是否给出了与问题中完全相同的错误消息。

修复方法是从属性文件中删除引号:

url=jdbc:mysql://localhost:3306/hplus
username=root
password=123Nbr@
 类似资料:
  • 问题内容: 我正在尝试使用标准JDBC方式连接到数据库 连接上是否有一个最大的超时值,连接的生存期有多长,我可以增加该值吗?我希望万一连接永远打开,这是个好主意。 问题答案: 该值通常是由DB控制的。您无法使用代码对其进行控制。这取决于所使用的数据库服务器。通常最多需要30分钟到一小时。 另一方面,永远保持开放是一个非常糟糕的主意。最佳做法是获取 和 关闭,并在 最短的 可能范围,以避免资源泄漏和

  • 问题内容: 我有Google地图提供的JavaScript值,需要将其保存在MySQL数据库中。 其实我有变量 我需要将该变量传递给PHP变量lugar 问题答案: 如果要在页面转换时进行操作,则可以通过表单或在URL中传递它,然后仅使用或接收变量。 如果您需要无缝完成它,那么您可能需要考虑使用AJAX。

  • 我正在尝试运行一个带有env变量的docker映像。 但是它对我来说不管是使用env.list文件还是命令行都不起作用。

  • 问题内容: 我有一个PHP会话变量,在整个会话过程中仍然有效。在开头部分,我包含了我的JavaScript文件。 如果需要以下内容,如何将会话变量传递到JavaScript文件中。 由于无法在JavaScript文件中识别出,因此上面的代码不起作用。因此,我必须放入PHP文件本身,但是如何将其保留在JavaScript文件中? 问题答案: 在您的PHP文件中,您可以将用户设置为全局变量: 在包含外

  • 问题内容: 如果我有一个指令,我可以这样调用它 我该如何访问?我在函数中使用时会得到实际的字符串。当我检查html时,实际上说。 问题答案: 尝试 然后 演示:柱塞

  • 问题内容: 如何在不刷新页面的情况下将变量从jQuery传递到PHP?当我单击一个复选框时,我想将一个变量从jQuery传递到PHP。我也在使用formdialog。 我的PHP代码 我的JavaScript代码 问题答案: Ajax可以做到这一点。谷歌它,并检查api.jquery.com并查看ajax函数,.ajax(),.post(),.get(),.load()等。 关于您的特定问题,这是