通过Java连接Sql Server数据库
作者:mmseoamin日期:2023-12-11

1、下载JDBC

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

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

通过Java连接Sql Server数据库,第1张

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

通过Java连接Sql Server数据库,第2张

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

通过Java连接Sql Server数据库,第3张

2、配置Sql Server

打开Sql Server配置管理器

通过Java连接Sql Server数据库,第4张

这里我使用的是SQLEXPRESS的协议

通过Java连接Sql Server数据库,第5张

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

通过Java连接Sql Server数据库,第6张

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

通过Java连接Sql Server数据库,第7张

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

通过Java连接Sql Server数据库,第8张

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

通过Java连接Sql Server数据库,第9张

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

通过Java连接Sql Server数据库,第10张

3、数据库设置

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

通过Java连接Sql Server数据库,第11张

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

通过Java连接Sql Server数据库,第12张

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

通过Java连接Sql Server数据库,第13张

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

通过Java连接Sql Server数据库,第14张

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

通过Java连接Sql Server数据库,第15张

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

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

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

添加依赖sqljdbc42.jar

通过Java连接Sql Server数据库,第16张

执行代码进行测试

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】。

修改前:

通过Java连接Sql Server数据库,第17张

修改后:

通过Java连接Sql Server数据库,第18张

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

通过Java连接Sql Server数据库,第19张

解决:

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

2.2 关闭电脑防火墙

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

参考:

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