我想使用XAMPP在本地网络(三台计算机之间)中将MySQL与Java连接起来。但是我无法使用Java做到这一点,并尝试将数据库与PHP应用程序连接,然后再连接。我认为这不是XAMPP错误。它可能在Java应用程序中。请帮我。
Connection getcon() throws Exception {
Class.forName("com.mysql.jdbc.Driver");
String URL = "jdbc:mysql://192.168.8.101/checker";
String username = "root";
String password = "";
//Connection
con = DriverManager.getConnection(URL, username, password);
return con;
}
此处有更多详细信息:
例外:
run:
com.mysql.jdbc.CommunicationsException:由于基础异常导致通信链接失败:
**开始嵌套例外**
java.net.SocketException 消息:java.net.ConnectException:连接超时:connect
堆栈跟踪:
java.net.SocketException:java.net.ConnectException:连接超时:connect 在com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156) 在com.mysql.jdbc.MysqlIO。(MysqlIO.java:276) 在com.mysql.jdbc.Connection.createNewIO(Connection.java:2666) 在com.mysql.jdbc.Connection处(Connection.java:1531) 在com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266) 在java.sql.DriverManager.getConnection(DriverManager.java:661) 在java.sql.DriverManager.getConnection(DriverManager.java:247) 在connectionchecker.JDBC.getcon(JDBC.java:45) 在connectionchecker.JDBC.getdata(JDBC.java:68) 在connectionchecker.Check.incremntno(Check.java:28) 在connectionchecker.Check.jButton1ActionPerformed(Check.java:84) 在connectionchecker.Check.access $ 000(Check.java:15) 在connectionchecker.Check $ 1.actionPerformed(Check.java:50) 在javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) 在javax.swing.AbstractButton $ Handler.actionPerformed(AbstractButton.java:2346) 在javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) 在javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) 在javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) 在java.awt.Component.processMouseEvent(Component.java:6522) 在javax.swing.JComponent.processMouseEvent(JComponent.java:3322) 在java.awt.Component.processEvent(Component.java:6287) 在java.awt.Container.processEvent(Container.java:2229) 在java.awt.Component.dispatchEventImpl(Component.java:4878) 在java.awt.Container.dispatchEventImpl(Container.java:2287) 在java.awt.Component.dispatchEvent(Component.java:4700) 在java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4872) 在java.awt.LightweightDispatcher.processMouseEvent(Container.java:4528) 在java.awt.LightweightDispatcher.dispatchEvent(Container.java:4457) 在java.awt.Container.dispatchEventImpl(Container.java:2273) 在java.awt.Window.dispatchEventImpl(Window.java:2724) 在java.awt.Component.dispatchEvent(Component.java:4700) 在java.awt.EventQueue.dispatchEventImpl(EventQueue.java:743) 在java.awt.EventQueue.access $ 400(EventQueue.java:97) 在java.awt.EventQueue $ 3.run(EventQueue.java:694) 在java.awt.EventQueue $ 3.run(EventQueue.java:691) 在java.security.AccessController.doPrivileged(本机方法) 在java.security.ProtectionDomain $ 1.doIntersectionPrivilege(ProtectionDomain.java:75) 在java.security.ProtectionDomain $ 1.doIntersectionPrivilege(ProtectionDomain.java:86) 在java.awt.EventQueue $ 4.run(EventQueue.java:716) 在java.awt.EventQueue $ 4.run(EventQueue.java:714) 在java.security.AccessController.doPrivileged(本机方法) 在java.security.ProtectionDomain $ 1.doIntersectionPrivilege(ProtectionDomain.java:75) 在java.awt.EventQueue.dispatchEvent(EventQueue.java:713) 在java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:220) 在java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:135) 在java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:123) 在java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:119) 在java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:111) 在java.awt.EventDispatchThread.run(EventDispatchThread.java:97)
**结束嵌套例外**
发送到服务器的最后一个数据包是在43毫秒前。 我的味精没问题 java.lang.NullPointerException
JDBC类
公共类JDBC {
private static JDBC j;
Connection con = null;
private JDBC() {
}
public static JDBC getJDBC() {
if(j == null){
j= new JDBC();
}
return j;
}
Connection getcon() throws Exception {
try {
Class.forName("com.mysql.jdbc.Driver");
//String URL = "jdbc:mysql://127.0.0.1/checker";
String URL = "jdbc:mysql://192.168.8.101:80/checker";
String username = "root";
String password = "";
//Connection
con = DriverManager.getConnection(URL, username, password);
} catch (ClassNotFoundException | SQLException e) {
System.out.println(e);
}
return con;
}
void setdata(String sql) {
try {
if (con == null) {
getcon();
}
con.createStatement().executeUpdate(sql);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
ResultSet getdata(String sql) throws Exception {
if (con == null) {
getcon();
System.out.println("my msg is conn ok");
}else{
System.out.println("my msg is conn not ok");
}
ResultSet rset = con.createStatement().executeQuery(sql);
return rset;
}
}
答案 0 :(得分:0)
您需要在IP地址之后传递XAMPP的端口号。
XAMPP的默认端口号是80。
String URL = "jdbc:mysql://192.168.8.101:80/checker";
或者在下面试试这个
String URL = "jdbc:mysql://192.168.8.101:8080/checker";
答案 1 :(得分:0)
问题就在这里
System.out.println(data.toString()); //Datos que llegan
注意,这应该代表您的数据库服务器和运行数据库的端口。上面的网址是错误的,因为端口String URL = "jdbc:mysql://192.168.8.101:80/checker";
是Apache服务器的默认端口号。但是,您需要使用mysql端口,即3306(默认)。
相反,您应该尝试
80
我假设String URL = "jdbc:mysql://192.168.8.101:3306/checker";
是数据库名称。