[解决]
我终于解决了问题,连接一切都没问题......
问题出在一个SQL查询中,我在表中选择了一个名为“arduinoData”的选项,真正的名字是“arduinodata”。
这种方式适用于本地,但是当我尝试在线时,却没有。
因为这个,返回'null',而Java试图解析它并显示错误。
对不起,我很抱歉,谢谢大家。
我正在使用JDBC将我的程序连接到MySQL数据库。
我已经输入了端口号,是的,我的数据库有权访问。
当我完全使用localhost工作时,但是当我尝试连接到远程MySQL数据库时,在控制台上显示此错误。
java.lang.ExceptionInInitializerError
Caused by: java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:454)
at java.lang.Integer.parseInt(Integer.java:527)
at serial.BDArduino.<clinit>(BDArduino.java:25)
Exception in thread "main" Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 1 segundo)
提前谢谢你!
答案 0 :(得分:2)
注意:这本来是评论但是太长了。似乎人们看到NFE并猜测它的端口是否为空。这是误导。这是一个显示端口的WORKING代码。请避免误导回答。
try {
Class.forName("com.mysql.jdbc.Driver");
String sourceURL = "jdbc:mysql://localhost/sodb";
Connection conn = DriverManager.getConnection(sourceURL, "naishe", "p2ssword");
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("select count(*) from test_tab");
while(rs.next()){
System.out.println(rs.getString(1));
}
} catch(ClassNotFoundException cnfe) {
System.err.println(cnfe);
} catch(SQLException sqle) {
System.err.println(sqle);
}
它正确打印3
(表test_tab中的记录数)。
如果您使用标准驱动程序,不需要端口,则默认为3306!看这里 http://dev.mysql.com/doc/refman/5.5/en/connector-j-reference-configuration-properties.html
JDBC URL格式
MySQL Connector / J的JDBC URL格式如下,方括号([,])中的项是可选的:
jdbc:mysql://[host][,failoverhost...][:port]/[database] » [?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]...
如果未指定主机名,则默认为127.0.0.1。 如果未指定端口,则默认为3306,即MySQL服务器的默认端口号。
答案 1 :(得分:-1)
我认为您错过了连接字符串中的端口号。
static String url = "jdbc:mysql://mysql.mydomain.com.br:3306/myDB";
而不是
static String url = "jdbc:mysql://mysql.mydomain.com.br/myDB";
现在,如果获得相同的错误意味着你可以用IP地址替换 mysql.mydomain.com.br ,如下所示:
只需在数据库连接字符串中提供远程计算机的IP /主机名,而不是mysql.mydomain.com.br。例如:
jdbc:mysql://172.16.15.225:3306/yourdatabase
同时检查没有防火墙阻止访问端口3306。
确保允许您连接的用户从此特定主机名进行连接。对于开发环境,可以通过
执行此操作'username'@'%'
这是针对用户的授予权限 GRANT manual.
答案 2 :(得分:-1)
您应该使用port numbers
中的connection url as 3306
,并且如果未授予,请确保用户对数据库访问权限,您应该授予用户访问权限的权限远程数据库,请参阅link