2014-01-11 342 views
2

我們試圖從本質上將數據庫連接到用Java構建的大廳/員工管理程序。這是一個多模塊項目,我們的數據庫團隊決定使用SQL Server作爲管理基礎。SQL Server數據庫連接錯誤

不幸的是,這證明有問題導致大量的錯誤,我們完全不知道如何解決。在搜索Stack之後,出現了類似的問題,但是這些問題或者沒有解決,並且通過從SQL Server中移出,而我們無法做到,只是自己開始工作或者「開始工作」。

毫不猶豫,這是問題本身。該程序正確運行所有數據,因爲它是在'testmode'中調試的,其中值不經外部數據庫直接輸入到代碼中。試圖將兩者結合在一起時出現了真正的問題。

首先,localhost的連接端口證明有問題。使用端口1433,我們甚至沒有建立連接,甚至解鎖端口也沒有任何改變。在移至1434後,我們設法建立了各種連接。

下面是關於1433端口錯誤塊,如果有必要:

The TCP/IP connection to the host localhost, port 1433 has failed. Error: "Connection refused: connect. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.". 
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190) 
at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:241) 
at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2243) 
at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:491) 
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1309) 
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991) 
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827) 
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012) 
at java.sql.DriverManager.getConnection(Unknown Source) 
at java.sql.DriverManager.getConnection(Unknown Source) 
at com.j256.ormlite.jdbc.JdbcConnectionSource.makeConnection(JdbcConnectionSource.java:252) 
at com.j256.ormlite.jdbc.JdbcConnectionSource.getReadWriteConnection(JdbcConnectionSource.java:184) 
at com.j256.ormlite.jdbc.JdbcConnectionSource.getReadOnlyConnection(JdbcConnectionSource.java:170) 
at com.j256.ormlite.stmt.StatementExecutor.buildIterator(StatementExecutor.java:243) 
at com.j256.ormlite.stmt.StatementExecutor.query(StatementExecutor.java:197) 
at com.j256.ormlite.stmt.StatementExecutor.queryForAll(StatementExecutor.java:118) 
at com.j256.ormlite.dao.BaseDaoImpl.queryForAll(BaseDaoImpl.java:239) 
at controler.AdminRoomControler.getListRoomEquipmentData(AdminRoomControler.java:51) 
at gui.panel.ReservationRoomPanel.reloadData(ReservationRoomPanel.java:57) 
at gui.panel.ReservationRoomPanel.initialize(ReservationRoomPanel.java:82) 
at gui.panel.ReservationRoomPanel.<init>(ReservationRoomPanel.java:40) 
at gui.frame.ApplicationFrame.initialize(ApplicationFrame.java:58) 
at gui.frame.ApplicationFrame.<init>(ApplicationFrame.java:37) 
at main.Program$1.run(Program.java:22) 
at java.awt.event.InvocationEvent.dispatch(Unknown Source) 
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) 
at java.awt.EventQueue.access$200(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$1.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) 

在改變端口1434,我們用另一個問題打招呼。出於某種原因,SQL Server響應我們的連接,併發出Prelogin Handshake問題,我們完全不知道如何解決。這些錯誤如下:

sty 11, 2014 5:32:02 PM com.microsoft.sqlserver.jdbc.SQLServerConnection Prelogin 
WARNING: ConnectionID:1 ClientConnectionId: 0a8f83b1-ce25-48c1-8796-c2c5c7d080b7 Prelogin error: host localhost port 1434 Error reading prelogin response: Software caused connection abort: recv failed ClientConnectionId:0a8f83b1-ce25-48c1-8796-c2c5c7d080b7 
sty 11, 2014 5:32:02 PM com.microsoft.sqlserver.jdbc.SQLServerConnection Prelogin 
WARNING: ConnectionID:1 ClientConnectionId: 982a07f7-0cbd-417f-8bcb-47eebe6b4524 Prelogin error: host localhost port 1434 Error reading prelogin response: Connection reset ClientConnectionId:982a07f7-0cbd-417f-8bcb-47eebe6b4524 
sty 11, 2014 5:32:02 PM com.microsoft.sqlserver.jdbc.SQLServerConnection Prelogin 
WARNING: ConnectionID:1 ClientConnectionId: 9c136851-d172-4b98-8722-16941642d14a Prelogin error: host localhost port 1434 Error reading prelogin response: Connection reset ClientConnectionId:9c136851-d172-4b98-8722-16941642d14a 
sty 11, 2014 5:32:03 PM com.microsoft.sqlserver.jdbc.SQLServerConnection Prelogin 
WARNING: ConnectionID:1 ClientConnectionId: bc3db9f2-6d56-43bd-9145-051dc418d8b9 Prelogin error: host localhost port 1434 Error reading prelogin response: Connection reset ClientConnectionId:bc3db9f2-6d56-43bd-9145-051dc418d8b9 
sty 11, 2014 5:32:04 PM com.microsoft.sqlserver.jdbc.SQLServerConnection Prelogin 
WARNING: ConnectionID:1 ClientConnectionId: 93c0fd9c-925d-40d9-af4e-35be3f3ec0d4 Prelogin error: host localhost port 1434 Error reading prelogin response: Connection reset ClientConnectionId:93c0fd9c-925d-40d9-af4e-35be3f3ec0d4 
sty 11, 2014 5:32:05 PM com.microsoft.sqlserver.jdbc.SQLServerConnection Prelogin 
WARNING: ConnectionID:1 ClientConnectionId: cb32d339-0c63-4549-8821-61b2818c9548 Prelogin error: host localhost port 1434 Error reading prelogin response: Connection reset ClientConnectionId:cb32d339-0c63-4549-8821-61b2818c9548 
sty 11, 2014 5:32:06 PM com.microsoft.sqlserver.jdbc.SQLServerConnection Prelogin 
WARNING: ConnectionID:1 ClientConnectionId: 5c63f908-8019-48ac-9b4e-0b9a4c29e6e6 Prelogin error: host localhost port 1434 Error reading prelogin response: Connection reset ClientConnectionId:5c63f908-8019-48ac-9b4e-0b9a4c29e6e6 
sty 11, 2014 5:32:07 PM com.microsoft.sqlserver.jdbc.SQLServerConnection Prelogin 
WARNING: ConnectionID:1 ClientConnectionId: ce8945a8-1fe7-40b8-a7c9-331f263be084 Prelogin error: host localhost port 1434 Error reading prelogin response: Connection reset ClientConnectionId:ce8945a8-1fe7-40b8-a7c9-331f263be084 
sty 11, 2014 5:32:08 PM com.microsoft.sqlserver.jdbc.SQLServerConnection Prelogin 
WARNING: ConnectionID:1 ClientConnectionId: a0ed799f-471e-4496-8fb5-6f2599faa45f Prelogin error: host localhost port 1434 Error reading prelogin response: Connection reset ClientConnectionId:a0ed799f-471e-4496-8fb5-6f2599faa45f 
sty 11, 2014 5:32:09 PM com.microsoft.sqlserver.jdbc.SQLServerConnection Prelogin 
WARNING: ConnectionID:1 ClientConnectionId: f35803a2-7e46-4163-a9db-08977c78fd63 Prelogin error: host localhost port 1434 Error reading prelogin response: Connection reset ClientConnectionId:f35803a2-7e46-4163-a9db-08977c78fd63 
sty 11, 2014 5:32:10 PM com.microsoft.sqlserver.jdbc.SQLServerConnection Prelogin 
WARNING: ConnectionID:1 ClientConnectionId: 182e2bf0-9ad6-40e6-b767-ab6bf7173929 Prelogin error: host localhost port 1434 Error reading prelogin response: Connection reset ClientConnectionId:182e2bf0-9ad6-40e6-b767-ab6bf7173929 
sty 11, 2014 5:32:11 PM com.microsoft.sqlserver.jdbc.SQLServerConnection Prelogin 
WARNING: ConnectionID:1 ClientConnectionId: 7d71a9ec-c22b-4247-8bd2-540e75470e80 Prelogin error: host localhost port 1434 Error reading prelogin response: Connection reset ClientConnectionId:7d71a9ec-c22b-4247-8bd2-540e75470e80 
sty 11, 2014 5:32:12 PM com.microsoft.sqlserver.jdbc.SQLServerConnection Prelogin 
WARNING: ConnectionID:1 ClientConnectionId: 9a739139-241f-47c4-bfe8-bb3a1cbe3c18 Prelogin error: host localhost port 1434 Error reading prelogin response: Connection reset ClientConnectionId:9a739139-241f-47c4-bfe8-bb3a1cbe3c18 
sty 11, 2014 5:32:13 PM com.microsoft.sqlserver.jdbc.SQLServerConnection Prelogin 
WARNING: ConnectionID:1 ClientConnectionId: d53915f6-5419-4bd0-883f-5c25a12d5678 Prelogin error: host localhost port 1434 Error reading prelogin response: Connection reset ClientConnectionId:d53915f6-5419-4bd0-883f-5c25a12d5678 
sty 11, 2014 5:32:14 PM com.microsoft.sqlserver.jdbc.SQLServerConnection Prelogin 
WARNING: ConnectionID:1 ClientConnectionId: 8eaec619-d01a-4138-bb06-44cdc8a08fe9 Prelogin error: host localhost port 1434 Error reading prelogin response: Connection reset ClientConnectionId:8eaec619-d01a-4138-bb06-44cdc8a08fe9 
sty 11, 2014 5:32:15 PM com.microsoft.sqlserver.jdbc.SQLServerConnection Prelogin 
WARNING: ConnectionID:1 ClientConnectionId: 4c176172-9ff5-479a-b39a-40e026da9e16 Prelogin error: host localhost port 1434 Error reading prelogin response: Connection reset ClientConnectionId:4c176172-9ff5-479a-b39a-40e026da9e16 
sty 11, 2014 5:32:16 PM com.microsoft.sqlserver.jdbc.SQLServerConnection Prelogin 
WARNING: ConnectionID:1 ClientConnectionId: 6b9ab775-5845-4b11-ad25-9cef7b56f041 Prelogin error: host localhost port 1434 Error reading prelogin response: Connection reset ClientConnectionId:6b9ab775-5845-4b11-ad25-9cef7b56f041 
sty 11, 2014 5:32:17 PM com.microsoft.sqlserver.jdbc.SQLServerConnection Prelogin 
WARNING: ConnectionID:1 ClientConnectionId: 04ef0517-4410-4d63-947c-d349ed4684ad Prelogin error: host localhost port 1434 Error reading prelogin response: Connection reset ClientConnectionId:04ef0517-4410-4d63-947c-d349ed4684ad 
com.microsoft.sqlserver.jdbc.SQLServerException: Connection reset ClientConnectionId:04ef0517-4410-4d63-947c-d349ed4684ad 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1667) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1654) 
    at com.microsoft.sqlserver.jdbc.TDSChannel.read(IOBuffer.java:1789) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.Prelogin(SQLServerConnection.java:1424) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1319) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827) 
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at com.j256.ormlite.jdbc.JdbcConnectionSource.makeConnection(JdbcConnectionSource.java:252) 
    at com.j256.ormlite.jdbc.JdbcConnectionSource.getReadWriteConnection(JdbcConnectionSource.java:184) 
    at com.j256.ormlite.jdbc.JdbcConnectionSource.getReadOnlyConnection(JdbcConnectionSource.java:170) 
    at com.j256.ormlite.stmt.StatementExecutor.buildIterator(StatementExecutor.java:243) 
    at com.j256.ormlite.stmt.StatementExecutor.query(StatementExecutor.java:197) 
    at com.j256.ormlite.stmt.StatementExecutor.queryForAll(StatementExecutor.java:118) 
    at com.j256.ormlite.dao.BaseDaoImpl.queryForAll(BaseDaoImpl.java:239) 
    at controler.AdminRoomControler.getListRoomEquipmentData(AdminRoomControler.java:51) 
    at gui.panel.ReservationRoomPanel.reloadData(ReservationRoomPanel.java:57) 
    at gui.panel.ReservationRoomPanel.initialize(ReservationRoomPanel.java:82) 
    at gui.panel.ReservationRoomPanel.<init>(ReservationRoomPanel.java:40) 
    at gui.frame.ApplicationFrame.initialize(ApplicationFrame.java:58) 
    at gui.frame.ApplicationFrame.<init>(ApplicationFrame.java:37) 
    at main.Program$1.run(Program.java:22) 
    at java.awt.event.InvocationEvent.dispatch(Unknown Source) 
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source) 
    at java.awt.EventQueue.access$200(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$1.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) 

最後,我們所遇到的地方在文件和數據庫中列名不匹配是一個排版問題。不幸的是,糾正這個問題導致了更多的錯誤出現。爲了增加對傷害的侮辱,有時它甚至沒有檢測到不匹配錯誤,所以我們在這裏完全處於損失狀態。

這裏是用來勾數據庫保持我們的代碼:

package database; 

import java.sql.SQLException; 

import POJO.Administrator; 
import POJO.Equipment; 
import POJO.Event; 
import POJO.Guest; 
import POJO.Personnel; 
import POJO.Room; 

import com.j256.ormlite.dao.Dao; 
import com.j256.ormlite.dao.DaoManager; 
import com.j256.ormlite.jdbc.JdbcConnectionSource; 
import com.j256.ormlite.support.ConnectionSource; 


public class DbManager { 

    // Proper db address should be placed here. 
    private final String DATABASE_URL = "jdbc:sqlserver://localhost:1434;databaseName=IO;integratedSecurity=true;"; 

    private ConnectionSource connectionSource; 

    public Dao<Administrator,Integer> administratorDao; 
    public Dao<Equipment,Integer> equipmentDao; 
    public Dao<Event,Integer> eventDao; 
    public Dao<Guest,Integer> guestDao; 
    public Dao<Personnel,Integer> personnelDao; 
    public Dao<Room,Integer> roomDao; 

    public DbManager() throws SQLException 
    { 
     connectionSource = new JdbcConnectionSource(DATABASE_URL); 
     administratorDao = DaoManager.createDao(connectionSource, Administrator.class); 
     equipmentDao = DaoManager.createDao(connectionSource, Equipment.class); 
     eventDao = DaoManager.createDao(connectionSource, Event.class); 
     guestDao = DaoManager.createDao(connectionSource, Guest.class); 
     personnelDao = DaoManager.createDao(connectionSource, Personnel.class); 
     roomDao = DaoManager.createDao(connectionSource, Room.class); 
    } 

    @Override 
    protected void finalize() throws Throwable 
    { 
     connectionSource.close();  
     super.finalize(); 

    } 
} 

我們是完全脫離的想法,真的,任何不關注或者完全從SQL Server數據庫改寫別的東西將是援助。先謝謝你!

+0

請告訴我們您正在嘗試使用的實際Microsoft SQL Server版本(2012,2008,2005,...)和版本(Express Edition,Standard Edition,...)。 –

+0

當然!我們使用帶有Service Pack 1的Microsoft SQL Server 2012開發人員。 – Dennet

+0

要驗證SQL Server正在偵聽的端口,請參閱[此處]的說明(http://stackoverflow.com/a/12297597/2144390)。本文檔可能也有幫助:[如何配置SQL Server以偵聽特定端口](http://support.microsoft.com/kb/823938)。 –

回答

4

SQL Server Browser使用端口1434.驗證SQL Server上啓用了TCP/IP並再次嘗試默認端口(1433)。

請參閱this post

+0

這是TCP/IP。非常感謝您的支持,它現在可以運行!啊,最簡單的東西總是會逃脫你。 – Dennet

+0

不客氣!四隻眼總比兩隻好。 – patterned