我不知道为什么但是这行给了我一个错误。我首先制作一些私有字符串,主机,端口,数据库,用户和密码。然后我在构造函数中设置这些字符串。
Connection conn = DriverManager.getConnection("jdbc:mysql://" + host + ":" + port + "/" + database + "?user=" + user + "&password=" + password);
这是我收到的错误消息:
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: 由于基础异常,无法加载连接类: 'java.lang.Number FormatException:对于输入字符串:“null”'。
我在这里做错了什么?
答案 0 :(得分:3)
最可能的原因是您的一个参数为null。可能port
,因为尝试将其转换为数字。
除非您使用非默认端口(默认为3306),否则您可以省略端口:
Connection conn = DriverManager.getConnection("jdbc:mysql://" + host + "/" + database + "?user=" + user + "&password=" + password);
答案 1 :(得分:1)
我的猜测是,port
只有null
。
当您将字符串传递给getConnection()
方法时,它会尝试将端口解析为数字。当您将空值连接到String
时,它会附加' null'。现在你的字符串看起来像jdbc:mysql://examplehost:null
。因此java.lang.Number FormatException: For input string: "null"
。
答案 2 :(得分:0)
从例外情况来看,这一点非常清楚。这是因为你的port
为null并且在尝试解析为Number时抛出异常。