2016-08-03 53 views
0

我收到此錯誤:「從網絡讀取時數據不足 - 預計最少6字節並只接收0字節,連接已終止。當我嘗試連接到我的數據庫時。我似乎無法找到任何可行的解決方案。你們能幫我一把嗎?Java SQL預期6字節並收到0錯誤

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 

public class RetrieveData 
{ 
    private String zone; 
    private String date; 
    private String userName = "User"; 
    private String password = "Password"; 
    private String serverAdress= "jdbc:derby://Server:1010/Database"; 
    private Connection con = null; 
    private Statement stmt = null; 
    private ResultSet rs = null; 
    RetrieveData(String zoneToPull, String dayToPull) 
    { 
     zone = zoneToPull; 
     date = dayToPull; 
    } 

    public int HistoryActual() 
    { 
     try 
     { 
      Class.forName("org.apache.derby.jdbc.ClientDriver"); 
      con = DriverManager.getConnection(serverAdress, userName, password); 
      String sql = "SELECT TOP 10 " + 
           "*" + 
          "FROM" + 
           "walks" + 
          "WHERE"+ 
           "company_id = 'TMS3'"; 
      stmt = con.createStatement(); 
      rs = stmt.executeQuery(sql); 
      while (rs.next()) 
      { 
       System.out.println(rs.getString(4) + " " + rs.getString(6)); 
      } 
     } 
     catch (SQLException e) 
     { 
      System.out.println(e.getMessage()); 
     } 
     finally 
     { 
      if (rs != null) try { rs.close(); } catch(Exception e) {} 
      if (stmt != null) try { stmt.close(); } catch(Exception e) {} 
      if (con != null) try { con.close(); } catch(Exception e) {} 
     } 
     return 0; 
    } 
} 

這裏是堆棧跟蹤:

java.sql.SQLNonTransientConnectionException: Insufficient data while reading from the network - expected a minimum of 6 bytes and received only 0 bytes. The connection has been terminated. at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source) at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source) at org.apache.derby.jdbc.ClientDriver.connect(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at RetrieveData.HistoryActual(RetrieveData.java:27) at BookToGoals.(BookToGoals.java:34) at Console.Console(Console.java:96) at Console.access$0(Console.java:47) at Console$1.run(Console.java:43) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$500(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Caused by: ERROR 08006: Insufficient data while reading from the network - expected a minimum of 6 bytes and received only 0 bytes. The connection has been terminated. at org.apache.derby.client.net.Reply.fill(Unknown Source) at org.apache.derby.client.net.Reply.ensureALayerDataInBuffer(Unknown Source) at org.apache.derby.client.net.Reply.readDssHeader(Unknown Source) at org.apache.derby.client.net.Reply.startSameIdChainParse(Unknown Source) at org.apache.derby.client.net.NetConnectionReply.readExchangeServerAttributes(Unknown Source) at org.apache.derby.client.net.NetConnection.readServerAttributesAndKeyExchange(Unknown Source) at org.apache.derby.client.net.NetConnection.flowServerAttributesAndKeyExchange(Unknown Source) at org.apache.derby.client.net.NetConnection.flowUSRIDPWDconnect(Unknown Source) at org.apache.derby.client.net.NetConnection.flowConnect(Unknown Source) at org.apache.derby.client.net.NetConnection.(Unknown Source) at org.apache.derby.client.net.ClientJDBCObjectFactoryImpl.newNetConnection(Unknown Source) ... 22 more

+0

可否請您添加堆棧跟蹤作爲您的問題的一部分? – JavaHopper

+0

還描述你的德比數據庫是如何設置的。這是您正在使用的正在進行的基於文件的數據庫,還是真的有一個運行derby數據庫的獨立進程? – user3745362

+0

數據庫運行在單獨的服務器上。它的主要用途是與另一個程序。我只是試圖從中提取數據。 – Ardel

回答

0

它看起來像我發現了是怎麼回事。這是由於我自己的困惑。我正在嘗試連接到Microsoft SQL數據庫。因此我需要不是德比的sqljdbc驅動程序。這已經解決了我的問題。謝謝你們的幫助。