为了账号安全,请及时绑定邮箱和手机立即绑定

com.mysql.jdbc.exceptions.jdbc4.Communications

com.mysql.jdbc.exceptions.jdbc4.Communications

一只甜甜圈 2019-05-24 14:40:21
com.mysql.jdbc.exceptions.jdbc4.Communications我正在努力让我的数据库与我的Java程序对话。有人可以使用JDBC给我一个快速而又脏的示例程序吗?我收到了一个相当惊人的错误:Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure      The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)     at java.lang.reflect.Constructor.newInstance(Constructor.java:513)     at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)     at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1122)     at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2260)     at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:787)     at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:49)测试文件的内容:import com.mysql.jdbc.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql. ResultSet;import java.sql.SQLException;import java.sql.Statement;public class SqlTest {     public static void main(String [] args) throws Exception {         // Class.forName( "com.mysql.jdbc.Driver" ); // do this in init         // // edit the jdbc url          Connection conn = DriverManager.getConnection(              "jdbc:mysql://localhost:3306/projects?user=user1&password=123");         // Statement st = conn.createStatement();         // ResultSet rs = st.executeQuery( "select * from table" );         System.out.println("Connected?");     }}
查看完整描述

4 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

当Java出堆时我抓住了这个异常。如果我尝试在RAM中放入许多数据项 - 首先我捕获“ 通信链接失败”和下一个“ OutOfMemoryError ”。

我记录了它,我减少了内存消耗(删除1/2数据),一切正常。


查看完整回答
反对 回复 2019-05-24
?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

这是最好的解决方案,

 Connection con = DriverManager.getConnection(
 "jdbc:mysql://localhost:3306/DBname", "root", "root");

 Connection con = DriverManager.getConnection(
 "jdbc:mysql://192.100.0.000:3306/DBname", "root", "root");

将Localhost替换为您的IP地址


查看完整回答
反对 回复 2019-05-24
?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException如果数据库连接长时间处于空闲状态,则会发生此异常。

这个空闲连接返回true,connection.isClosed();但如果我们尝试执行语句,那么它将触发此异常,因此我建议使用数据库池。


查看完整回答
反对 回复 2019-05-24
  • 4 回答
  • 0 关注
  • 6455 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信