如何修复java中连接到数据库的网络协议错误(SQLNonTransient)



这里有问题消息;

Java.sql.SQLNonTransientConnectionException: A network protocol error was encountered and the connection has been terminated:The requested command encountered an unarchitected and implementation-specific condition for which there was no architected message (additional information may be available in the derby.log file on the server).

我还看了德比日志。它说拒绝访问一个derby文件

ava.sql.SQLNonTransientConnectionException: A network protocol error was encountered and the connection has been terminated: The requested command encountered an unarchitected and implementation-specific condition for which there was no architected message (additional information may be available in the derby.log file on the server).
at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source)
at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
at org.apache.derby.client.am.ClientStatement.executeQuery(Unknown Source)
at habersitesihabertakibi.SQLCommand.select(SQLCommand.java:43)
at habersitesihabertakibi.Site.getKullaniciSayisi(Site.java:423)
at habersitesihabertakibi.GirisPaneli.<init>(GirisPaneli.java:36)
at habersitesihabertakibi.GirisPaneli$3.run(GirisPaneli.java:234)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: ERROR 08006: A network protocol error was encountered and the connection has been terminated: The requested command encountered an unarchitected and implementation-specific condition for which there was no architected message (additional information may be available in the derby.log file on the server).
    at org.apache.derby.client.net.NetConnectionReply.parseCMDCHKRM(Unknown Source)
    at org.apache.derby.client.net.NetStatementReply.parsePrepareError(Unknown Source)
    at org.apache.derby.client.net.NetStatementReply.parsePRPSQLSTTreply(Unknown Source)
    at org.apache.derby.client.net.NetStatementReply.readPrepareDescribeOutput(Unknown Source)
    at org.apache.derby.client.net.StatementReply.readPrepareDescribeOutput(Unknown Source)
    at org.apache.derby.client.net.NetStatement.readPrepareDescribeOutput_(Unknown Source)
    at 
org.apache.derby.client.am.ClientStatement.readPrepareDescribeOutput(Unknown Source)
    at org.apache.derby.client.am.ClientStatement.flowExecute(Unknown Source)
    at org.apache.derby.client.am.ClientStatement.executeQueryX(Unknown Source)
    ... 19 more 
Caused by: ERROR XSDG3: DERBY SQL error: ERRORCODE: 45000, SQLSTATE: XSDG3, SQLERRMC: Meta-data for unknown could not be accessed to read C:Usersbilal.harmansa.netbeans-derbyhabersitesitakibiseg0c860.dat::SQLSTATE: XJ001
... 28 more
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at habersitesihabertakibi.Site.getKullaniciSayisi(Site.java:426)
    at habersitesihabertakibi.GirisPaneli.<init>(GirisPaneli.java:36)
    at habersitesihabertakibi.GirisPaneli$3.run(GirisPaneli.java:234)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at 
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(E
ventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
BUILD STOPPED (total time: 5 minutes 1 second)

所以,伙计们,我可以连接到数据库,我的意思是,我点击了连接,它看起来像是连接的,我可以看到表,但我不能查看数据库上的数据。我在网上搜索了一会儿,但还是没找到解决办法。2天前,我更新了netbeans,然后它开始不工作:)

我做了一些事情,现在可以工作了。我不知道为什么,但我会告诉你我做了什么。

首先,我在netbeans 上获得了我的数据库文件路径

C: \Users\bilal.harmansa.netbeans-derby

之后,我将".netbeans derby"复制到D:\,之后我更改了netbeans中的路径。(NetBeans>服务>JavaDB右键单击属性>数据库位置

我改成D:\.netbeans derby.

我关闭了netbeans并再次打开它。我试着连接它给了我一些红线,但它连接了,我可以看到我的数据。之后我走上了原来的路C: \Users\bilal.harmansa.netbeans-derby

我删除了.netbeans derby。之后我在驱动程序D:\中复制了.netbean derby,并粘贴到

C: \Users\bilal.harmansa\.

最后转到netbeans并将数据库位置设置为原始位置。(我们把它改成D:.netbeans derby)应该是

C: \Users\bilal.harmansa.netbeans-derby

再次。

就是这样。若你们有同样的问题,也许现在就行了。我的是说无法读取文件导致访问被拒绝。我希望你也能解决你的问题:)

最新更新