【问题标题】:errors while try to run executeQuery/prepared statements()尝试运行 executeQuery/prepared statements() 时出错
【发布时间】:2011-05-05 08:23:48
【问题描述】:

SQL 语句未执行 com.mysql.jdbc.CommunicationsException: Communications link >failure 由于底层异常:

** 开始嵌套异常 **

java.net.ConnectException 消息: 连接被拒绝

堆栈跟踪:

java.net.ConnectException:连接 拒绝在 java.net.PlainSocketImpl.socketConnect(本机 方法)在 java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:310) 在 java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:176) 在 java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:163) 在 java.net.SocksSocketImpl.connect(SocksSocketImpl.java:384) 在 java.net.Socket.connect(Socket.java:546) 在 java.net.Socket.connect(Socket.java:495) 在 java.net.Socket.(Socket.java:392) 在 java.net.Socket.(Socket.java:235) 在 com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256) 在 com.mysql.jdbc.MysqlIO.(MysqlIO.java:271) 在 com.mysql.jdbc.Connection.createNewIO(Connection.java:2771) 在 com.mysql.jdbc.Connection.(Connection.java:1555) 在 com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285) 在 java.sql.DriverManager.getConnection(DriverManager.java:620) 在 java.sql.DriverManager.getConnection(DriverManager.java:200) 在 org.jtdemo.preparedst.main(preparedst.java:18)

** 结束嵌套异常 **

发送到服务器的最后一个数据包是 1 女士前。在 com.mysql.jdbc.Connection.createNewIO(Connection.java:2847) 在 com.mysql.jdbc.Connection.(Connection.java:1555) 在 com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285) 在 java.sql.DriverManager.getConnection(DriverManager.java:620) 在 java.sql.DriverManager.getConnection(DriverManager.java:200) 在 org.jtdemo.preparedst.main(preparedst.java:18)

我的程序是


package org.jtdemo;
import java.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class preparedst
{
 //private static final String y = null;

 public static void main(String arg[])throws Exception
 {
 try
 {
  Class.forName("com.mysql.jdbc.Driver");
  String url="jdbc:mysql://localhost:3036/mylib_db";
  Connection con=DriverManager.getConnection(url,"nikki","dkm007");
  String query = " select c.sub_category, b.title,b.author,b.b_key,ta.available_copies" +
    "from Book_dim b,Category_list c,item_availablity_fact ta" +
   " where sub_category = 'Mathematics' and " + 
    " c.category_id=b.category_id and " + 
   " b.b_key=ta.b_key " ;
  /*ps = con.prepareStatement(" select c.sub_category, b.title,b.author,b.b_key,ta.available_copies" +
     "from Book_dim b,Category_list c,item_availablity_fact ta" +
    " where sub_category = ? and " + 
     " c.category_id=b.category_id and " + 
    " b.b_key=ta.b_key ");*///pass sql query ,no parameter passing
  //ps.String(1, "Mathematics"); // set input parameter
  Statement stmt = con.createStatement();
  ResultSet rs = stmt.executeQuery(query) ;
  while(rs.next())
  {

  String scat = rs.getString(1);
  String ttl = rs.getString(2);
  String auth = rs.getString(3);
  int bkey = rs.getInt(4);
  int avcop = rs.getInt(5);
  //String b_key;
  System.out.println("subcategory:"+scat+"title:"+ttl+"author:"+auth+"bookkey:"+bkey+"availcopies:"+avcop);

  }

  con.close();
  //ps.close();
 } 
  catch(Exception e)
        {
         System.out.println("SQL statement is not executed");
         e.printStackTrace();
        }

   }
 }

我正在使用 jdk 1.6,mysql-connector-java-5.0.8-bin.jar,Eclipse 版本:3.5.2。

请帮忙........

【问题讨论】:

    标签: java sql mysql


    【解决方案1】:

    看起来是网络问题。似乎数据库没有在您告诉 java 连接的端口上侦听。

    我会检查端口是否确实在监听(通过 netstat),检查任何防病毒、防火墙、安全程序等。如果一切恢复正常,那么也许重新启动数据库程序(myssql)就可以了把戏。

    【讨论】:

      【解决方案2】:

      异常告诉你问题所在。如果您的连接被拒绝,那么客户端或服务器的配置有问题。所以首先要检查的是 JDBC URL。您需要验证以下内容:

      • 服务器位于本地主机
      • 服务器在端口 3036 上提供服务(MySQL 的默认端口是 3306,所以这可能是您的问题)
      • 您在该服务器上有一个名为“mylib_db”的数据库
      • 您的用户名正确
      • 您的密码正确(将来您可能需要使用“密码”等占位符文本)

      如果所有信息都正确,您需要检查您的服务器以确保“nikki”有权通过网络连接到数据库。

      【讨论】:

        猜你喜欢
        • 2020-08-26
        • 1970-01-01
        • 1970-01-01
        • 2012-08-23
        • 2013-08-25
        • 2017-05-06
        • 2015-07-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多