通过Java连接Sql Server数据库

Posted 月望曦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过Java连接Sql Server数据库相关的知识,希望对你有一定的参考价值。

1、下载JDBC

JDBC是Java DateBase Connectivity的简写,翻译过来就是java连接数据库,或者更通俗地说就是java语言操作数据库。JDBC的本质其实是官方定义的一套操作所有关系型数据库的规则,也就是接口。

微软官方jdbc下载地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=11774

下载之后解压到相应位置,找到Microsoft JDBC Driver 6.0 for SQL Server\\sqljdbc_6.0\\chs\\jre8\\sqljdbc42.jar包,我将该包放到了D:\\sqljdbc文件夹中,方便添加。

配置系统环境变量,将该包位置添加到环境变量CLASSPATH中

2、配置Sql Server

打开Sql Server配置管理器

这里我使用的是SQLEXPRESS的协议

启用TCP/IP和NamedPipes,并设置TCP/IP属性,改IP1地址为127.0.0.1,并启用所有IP

设置IPALL的TCP端口为1433(一般默认使用1433端口)

默认端口可在客户端协议中进行修改

设置完成后需要重启该协议才会生效

注意,MSSQLSERVER启动时会导致SQLEXPRESS启动失败。

3、数据库设置

使用SQLEXPRESS服务器,通过Windows身份验证进入

设置登录名,取消强制实施密码策略

启用登录名,并授权连接数据库

在属性中设置安全性,开启双模式身份验证

重启SQL Server客户端后进行登录测试

4、在IDEA中,使用Java连接SQL Server数据库

sqljdbc6.0,需要java jdk版本低于9,这里建议使用jdk8

jdk8官网下载地址:Java Downloads | Oracle

添加依赖sqljdbc42.jar

执行代码进行测试

import java.sql.*;

public class Test 
    public static void main(String[] args) 
        String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
        String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=master";
        String userName = "sa";
        String userPwd = "123456";
        Connection dbConn = null;
        try 
            // 注册驱动
            Class.forName(driverName);
            // 获取数据库连接
            dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
            System.out.println("连接数据库成功");
         catch (Exception e) 
            e.printStackTrace();
            System.out.print("连接失败");
        

    

常见问题:

1、驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client preferences [TLS12]”

解决:该问题可以通过降低驱动版本来解决,也可以修改安全协议。

在你的设备上找到jdk的安装目录Java\\jdk1.8.0_351\\jre\\lib\\security下的java.security修改安全协议的配置即可。删掉这两个:TLSv1、TLSv1.1。特别要注意的是,如果你是选择了jre的运行环境来运行,那就是这个目录【\\jre1.8.0_351\\lib】。

修改前:

修改后:

2、通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。错误:“Connection refused: connect。

解决:

2.1 检查你进行连接的URL是否正确

2.2 关闭电脑防火墙

2.3 检查Sql Server的设置,重启SQL Server服务

参考:

使用Java连接SQLserver数据库_数据库_积极向上的小徐-DevPress官方社区

java连接本地数据库 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。

程序链接服务器数据库正常,链接本地数据库就报错,数据库是sqlserver2012,数据库远程连接已启用。
详细描述如下 com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“java.lang.RuntimeException: Could not generate DH keypair”。

参考技术A URL是怎么写的,服务器端配置使用SSL了么、客户端导入证书了么 。。。。。。。。

以上是关于通过Java连接Sql Server数据库的主要内容,如果未能解决你的问题,请参考以下文章

Java通过jdbc连接sql server2012详细过程

java连接本地数据库 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。

jTDS Java连接SQL Server 2000数据库

Java通过JDBC连接SQL Server

Java连接SQL Server:jTDS驱动兼容性问题

Java通过JDBC连接SQL SERVER 2017