今天_也很困 2025-06-23 22:31 采纳率: 14.3%
浏览 16

java 连接sql server 的问题

java 连接sql server 的问题,有没有解答一下的

D:\aaacomeon\javaabc\java\jdk-17\bin\java.exe "-javaagent:D:\aaacomeon\javaabc\IntelliJ IDEA Community Edition 2024.1.4\lib\idea_rt.jar=59651:D:\aaacomeon\javaabc\IntelliJ IDEA Community Edition 2024.1.4\bin" -Dfile.encoding=UTF-8 -classpath C:\Users\86195\Desktop\java课设\course\out\production\course;C:\Users\86195\Desktop\java课设\course\bin\mssql-jdbc-12.10.1.jre8.jar SQLServerDemo
com.microsoft.sqlserver.jdbc.SQLServerException: “Encrypt”属性设置为“false”且 “trustServerCertificate”属性设置为“true”,但驱动程序无法使用安全套接字层 (SSL) 加密与 SQL Server 建立安全连接:错误:The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]。 ClientConnectionId:632eddbb-6f2a-45b5-8970-9767674d7441
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:4586)
    at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1965)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:4108)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:3695)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:3504)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:2212)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1320)
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:681)
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:252)
    at SQLServerDemo.main(SQLServerDemo.java:35)
Caused by: javax.net.ssl.SSLHandshakeException: The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]
    at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131)
    at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:117)
    at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:365)
    at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:321)
    at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:312)
    at java.base/sun.security.ssl.ServerHello$ServerHelloConsumer.onServerHello(ServerHello.java:981)
    at java.base/sun.security.ssl.ServerHello$ServerHelloConsumer.consume(ServerHello.java:903)
    at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:396)
    at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:480)
    at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:458)
    at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:201)
    at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172)
    at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1506)
    at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1421)
    at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455)
    at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426)
    at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1854)
    ... 8 more

进程已结束,退出代码为 0

  • 写回答

6条回答 默认 最新

  • 阿里嘎多学长 2025-06-23 22:44
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    Java 连接 SQL Server 的问题

    你遇到了连接 SQL Server 的问题,可能是因为 Java 项目中使用的 JDBC 驱动程序不正确或配置不正确。

    首先,确保你已经安装了 SQL Server JDBC 驱动程序(Microsoft JDBC Driver 8.2 for SQL Server 或更高版本)。然后,在你的 Java 项目中添加以下依赖项:

    <dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>mssql-jdbc</artifactId>
        <version>9.2.1.jre11</version>
    </dependency>
    

    如果你使用 Maven,可以在 pom.xml 文件中添加上述依赖项。如果你使用 Gradle,可以在 build.gradle 文件中添加上述依赖项。

    接下来,在你的 Java 代码中使用以下代码连接 SQL Server:

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    public class Main {
        public static void main(String[] args) {
            String url = "jdbc:sqlserver://localhost:1433;databaseName=mydatabase";
            String username = "myusername";
            String password = "mypassword";
    
            try {
                Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
                Connection conn = DriverManager.getConnection(url, username, password);
                System.out.println("Connected to SQL Server!");
            } catch (ClassNotFoundException e) {
                System.out.println("Error: " + e.getMessage());
            } catch (SQLException e) {
                System.out.println("Error: " + e.getMessage());
            }
        }
    }
    

    其中,url 是 SQL Server 的连接字符串,usernamepassword 是你的 SQL Server 账户和密码。

    如果你仍然遇到问题,可以检查以下几点:

    • 确保 SQL Server 的 TCP/IP 协议是启用的。
    • 确保 Java 项目中的 JDBC 驱动程序版本正确。
    • 确保 SQL Server 的账户和密码正确。

    如果你仍然遇到问题,可以提供更多的错误信息和代码,我将尽力帮助你解决问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 6月23日