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官方社区

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐