2022IDEA连接2019MSSQL数据库

本文详细介绍了如何在IntelliJ IDEA (IDEA) 中连接到Microsoft SQL Server (MSSQL) 数据库,包括设置sa用户、下载JDBC驱动、配置IDEA以及编写并测试连接代码。通过安全设置和正确配置,成功实现了远程和本地的数据库连接。

2023.3.24 java实习

前言

为了连接sql server数据库成功设置的,具体可能有什么安全性的问题因为水平不够所以考虑不到。


一、设置sa用户

sa是SQL Sever预设的管理员帐户,帐户资料储存于SQL资料表中。Windows验证采用PC上的帐户做验证(需必备管理员相关权限)。不论用哪种方式登录,所能运行的功能都是一样的。

两着不同之处是:信任连接和非信任连接。

windows 身份验证相对于混合模式更加安全,使用window身份验证时,sql不判断sa密码,而仅根据用户的windows权限来进行身份验证,我们称为“信任连接”,但是在远程连接的时候会因NTML验证的缘故,无法登陆。

混合模式验证就比较复杂,当本地用户访问sql时候采用windows身份验证建立信任连接,当远程用户访问时由于未通过windows认证,而进行sql server认证(使用sa的用户也可以登录sql),建立“非信任连接”,从而使得远程用户也可以登录。 

                                                                                                                       ———百度用户润晨雨

右键-属性-安全性

 安全性-登录名-右键sa-属性

 重启MSSERVER服务(在sql server的配置管理器中设置)

win+R 打开运行,输入  SQLServerManager15.msc (sql2019版本对应的打开配置管理器命令,如果是以前的版本打开命令是数字的不同比如SQLServerManager13.msc具体百度一下)

 重启Sql Server,用sa用户连接。

新建数据库-测试查询表,新建表-学生表

二、设置IDEA

1.下载连接数据库驱动JDBC

jdk与jre版本适配,可以去官网查询适配jdk版本的jar包,我的Jdk版本为18.0.1.1,对应jar包的版本是11.2,下为官网地址

https://docs.microsoft.com/zh-cn/sql/connect/jdbc/microsoft-jdbc-driver-for-sql-server-support-matrix?view=sql-server-2017#java-and-jdbc-specification-support

 选择jdbc-11.2.2.jre18.jar以及本文件夹下auth-x64(我是x64windows)-jdbc-auth-11.2.2.x64.dll文件加入IDEA的配置中

添加dll文件可以解决连接数据库时报错:com.microsoft.sqlserver.jdbc.SQLServerException: 没有为集成身份验证配置驱动程序。

 IDEA-文件-项目结构-项目设置-库-新建项目库(点➕)-java-添加jar包和dll文件

2.测试连接代码

新建项目sqlconnecttest-新建类Test-

代码如下:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import static java.lang.Class.forName;

public class Test {

    private static Connection dbConn = null;

    public static void main(String[] args) {
            //根据反馈错误:驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target”   加入了trustServerCertificate=true;重点看错误描述再找解决办法
        

String dbURL = "jdbc:sqlserver://localhost:1433;trustServerCertificate=true;DatabaseName=测试查询表";

        try {
            //加载驱动
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            System.out.println("加载驱动成功!");
            //2.连接
            dbConn = DriverManager.getConnection(dbURL, "sa", "sa123");//这里改为设置的sa用户及其密码
            System.out.println("连接数据库成功!");
            String sql="select 姓名 from 学生表";//这个语句就是表的查询语句,按照你所建的表修改名称
            PreparedStatement statement=null;
            statement=dbConn.prepareStatement(sql);
            ResultSet res=null;
            res=statement.executeQuery();
            while(res.next()){
                String title=res.getString("姓名");
                System.out.println(title);
            }
        }catch(Exception e) {
         e.printStackTrace();
         System.out.println("连接数据库失败!");
        }
    }
}

3.运行结果

总结

根据具体错误信息查找解决办法。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值