2013-02-20 190 views
2

我试图将我的程序连接到我们的主服务器,但它不起作用。 当我登录,这是发生了错误,Java连接到IP地址

Connection error: 
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: 
Cannot load connection class because of underlying exception: 
'java.lang.NumberFormatException:For input string:"192.168.10.105"'. 

这里是我的代码,在我的课,我把它连接到我们的服务器的数据库:

package login; 
import java.sql.*; 
import javax.swing.JOptionPane; 


public class DatabaseCls { 

public Connection con; 
private void conData() { 
    try { 

     String host = "jdbc:mysql://ipAddress:192.168.10.105/eqod-log"; 
     String uName = "localhost"; 
     String uPass= "eq0d.c0m"; 


     con = DriverManager.getConnection(host, uName, uPass); 
    } 
    catch (Exception e) { 
     JOptionPane.showMessageDialog(null, e, "Connection Error", JOptionPane.ERROR_MESSAGE); 
    } 
} 

public ResultSet rsFetch(String query) { 
    ResultSet rs = null; 
    try { 
     conData(); 
     rs = con.createStatement().executeQuery(query); 
     return rs; 
    } 
    catch(Exception e) { 
     JOptionPane.showMessageDialog(null, e, "ResultSet Query Error", JOptionPane.ERROR_MESSAGE); 
     return rs; 
    } 
} 

public boolean exSQL(String query) { 
    boolean done; 
    try { 
     done = true; 
     conData(); 
     con.createStatement().execute(query); 
     con.close(); 
     return done; 
    } 
    catch(Exception e) { 
     done = false; 
     JOptionPane.showMessageDialog(null, e, "Query Error", JOptionPane.ERROR_MESSAGE); 
     return done; 
    } 
} 
} 

你能帮助我,林只是新的使用Java

+5

您的主机url不应包含'ipAddress:'; jdbc由于它错误地解析了URL。将其更改为'jdbc:mysql:// 192.168.10.105/eqod-log'应该可以解决该异常。 – Vulcan 2013-02-20 04:37:38

+0

错误:通信链路故障成功发送到服务器的最后一个数据包是0毫秒前。驱动程序未收到来自服务器的任何数据包 – kelvzy 2013-02-20 05:09:24

回答

2
String host = "jdbc:mysql://192.168.10.105:3306/eqod-log"; //3306 is port 

使用此字符串作为连接URL。欲了解更多详情JDBC URL Format

+0

通信链路故障 成功发送到服务器的最后一个数据包为0毫秒前。 驱动程序尚未收到来自服务器的任何数据包 – kelvzy 2013-02-20 05:02:02

+0

我无法理解您。是例外吗? – Nikhil 2013-02-20 05:04:55

+0

是的,它是..错误只是弹出 – kelvzy 2013-02-20 05:07:03

1

IP地址是指= 192.168.10.105

:就不得不提到的端口号的服务器后有没有默认情况下它是3306,与实际一个更新的端口号,然后尝试

改变这一行

String host = "jdbc:mysql://192.168.10.105:3306/eqod-log"; 
+0

错误:通信链路故障最后一个成功发送到服务器的数据包为0毫秒前。驱动程序未收到来自服务器的任何数据包 – kelvzy 2013-02-20 05:08:15

+0

检查您的服务器端口号。 – Meherzad 2013-02-20 05:09:49

+0

同样的问题http://stackoverflow.com/questions/6865538/solving-a-communications-link-failure-with-jdbc-and-mysql – Meherzad 2013-02-20 05:11:38

0

在这个字符串:

"jdbc:mysql://ipAddress:192.168.10.105/eqod-log" 
在URL中

,部分在冒号(ipAddress)之前应该是IP地址或主机名。这里解析器的东西是一个主机名“ipAddress”。冒号后面的部分应该是端口,因此是整数。所以解析器试图将“192.168.10.105”解析为整数,并且失败。

我想你想使用这个网址来代替:

"jdbc:mysql://192.168.10.105:1234/eqod-log" 

以1234作为端口(通常是3306)。

+0

错误:通信链接失败成功发送到服务器的最后一个数据包是0毫秒前。驱动程序未收到来自服务器的任何数据包 – kelvzy 2013-02-20 05:07:28