2013-05-21 11 views
5

È necessario connettersi a SQL Server 2008 da java utilizzando jdbc 4.0. Ho un codice molto semplice:Connessione a server SQL da java con jdbc (modalità di autenticazione di Windows)

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
String connectionUrl = "jdbc:sqlserver://localhost;" + 
    "integratedSecurity=true;"; 
Connection con = DriverManager.getConnection(connectionUrl); 

ma ho questo errore:

Exception in thread "main" com.microsoft.sqlserver.jdbc.SQLServerException: 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) 
... 

seguo questa risposta: https://stackoverflow.com/a/12524566/1554397

ho aggiunto jdbc4.jar in biblioteche/Compile

SQL Server Il servizio Windows Browser è in esecuzione.

Nella configurazione di rete di SQL Server ho selezionato Enebled su proprietà TCP/IP.

ho Impostare TCP Indirizzo al 1433.

On Run, VM Options metto -Djava.library.path = il mio percorso di sqljdbc_auth.dll e copiare in JDK, nel bidone sqljdbc_auth.dll.

Cosa devo fare?

EDIT: Quando scrittura in cmd telnet localhost 1433 ottengo 'Impossibile aprire la connessione con l'host, sulla porta 1433'

+0

Non è necessario 'forName()' con JDBC 4. –

+0

Ok, quindi? Ottengo lo stesso errore ... – Blocked

+0

No.It deve andare con la prima stringa. "La connessione al database di default sul computer locale utilizzando l'autenticazione integrata: jdbc: sqlserver: // localhost; integratedSecurity = true; " da http://msdn.microsoft.com/en-us/library/ms378428.aspx – Blocked

risposta

3

Se si utilizza l'autenticazione della finestra si può fare qualcosa di simile:

String url = "jdbc:sqlserver://MYPC\\SQLEXPRESS;databaseName=MYDB;integratedSecurity=true"; 
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
Connection conn = DriverManager.getConnection(url); 

e quindi aggiungere il percorso a sqljdbc_auth.dll come argomento VM (è necessario sqljdbc4.jar nel percorso di generazione).

Dai uno sguardo allo here per una breve guida passo-passo che mostra come connettersi a SQL Server da Java nel caso avessi bisogno di maggiori dettagli. Spero che sia d'aiuto!

0
Private Sub Toolbar1_ButtonClick(ByVal Button As ComctlLib.Button) 
Select Case Button.Key 
     Case "approved" 
      FRMAPPROVED.Show vbModal 
     Case "report" 
      frmreport.Show vbModal 
     Case "Entry" 
      frmMatEntry.Show vbModal 
     Case "ProdEntry" 
      frmProdEntry.Show vbModal 
     Case "exit" 
      End 
     End Select 
End Sub