我一直被困在一个小问题上,这是故事: 我有一个使用VMWare安装程序的环境,其中有一台运行Windows 7的PC和NetBeans 8.2,运行在JDK 8.1上,以及一台运行SQL Server Express的Windows Server 2003,该服务器上有一个SQL登录帐户,可以访问它是从Windows 7计算机通过SQL Manager从Windows 7计算机上获取的,但是,当我尝试在Netbeans上使用带有Java的JDBC4.2连接到它时,它似乎不起作用
不断弹出的问题与SSL有关,我真的不知道这意味着什么。这是netbeans给我的输出,我将它与SQL Server 2005一起使用,将NetBeans与JRE / JDK 8.1一起使用,尝试使用11.0出于某种原因不想打开项目,我尝试的JDBC是7.0 for 8.1、4.1和4.2 我尝试使用NetBeans 8.2和7.4版本。我只是谷歌翻译的错误,这意味着SSL的错误,可能是因为存在语言冲突?我的服务器是法语,Windows 7是法语,而netbeans是英语。
run:
com.microsoft.sqlserver.jdbc.SQLServerException: Le pilote n'a pas pu établir de connexion sécurisée au serveur SQL Server à l'aide du chiffrement SSL (Secure Sockets Layer). Erreur : « Le serveur SQL Server n'a retourné aucune réponse. La connexion a été fermée. ClientConnectionId:b41b6f9f-9c96-431a-ae4b-9066fef73be1 ».
at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:2826)
at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1829)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2391)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2042)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1889)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1120)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:700)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:270)
at connectbd.ConnectBD.main(ConnectBD.java:41)
Caused by: java.io.IOException: Le serveur SQL Server n'a retourné aucune réponse. La connexion a été fermée. ClientConnectionId:b41b6f9f-9c96-431a-ae4b-9066fef73be1
at com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.ensureSSLPayload(IOBuffer.java:786)
at com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.readInternal(IOBuffer.java:836)
at com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.read(IOBuffer.java:829)
at com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream.readInternal(IOBuffer.java:999)
at com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream.read(IOBuffer.java:989)
at sun.security.ssl.InputRecord.readFully(InputRecord.java:465)
at sun.security.ssl.InputRecord.read(InputRecord.java:503)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:983)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1385)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1413)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1397)
at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1756)
... 8 more
BUILD SUCCESSFUL (total time: 3 seconds)
这是我的代码
package connectbd;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.PreparedStatement;
/**
*
* @author blaid
*/
public class ConnectBD {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
String Server="SQLSERVER";
int port = 1433;
String user = "****";
String password = "****";
String database = "LP_SIBD_GR15";
String Instance = "SQLE";
String jdbcurl;
Connection con = null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
jdbcurl = "jdbc:sqlserver://" + Server + ";instanceName="+Instance+";user=" + user + ";password=" + password + "; databasename=" + database + "";
try {
con=DriverManager.getConnection(jdbcurl);
System.out.println("Connection success");
} catch(SQLException e) {
e.printStackTrace();
}
}
}