我奶奶看了也会配的 IDEA 连接 SQL Server 环境配置教程(Java)


数据库项目作业,需要数据库连接 IDEA 进行操作,网上百度了很多博客,试了半天终于搞好了,写篇博客记录下。虽然估计以后不会再配第二次了

一、下载驱动包

去 Micsoft 官网下载相应的驱动:下载 - JDBC Driver for SQL Server | Microsoft Docs,里面是微软大佬写好的各种连接 SQL Server 相关的类和函数,我们直接下最新版,然后就是建议稍微多留心一些官网里的说明,版本支持啥的要确保无误。

image-20211202083036263

下载并解压后如下图,记好安装路径,确保安装路径没有空格,否则会导致后面无法正常加载驱动。(我就是被这个坑了,不知道是系统还是啥原因,它下载好的文件自动给我改名成带空格的,然后就一直加载不了驱动,寄)

image-20211202083739924

二、在 IDEA 中导入驱动包

下好了驱动包,我们就可以在项目中导入它,然后直接调用它里面封装好的类和函数从而实现用 IDEA 对数据库进行各种操作了,具体步骤如下:

首先在 IDEA 中新建一个纯净的 Java 项目。

image-20211202083322935

Project SDK 选择一个可以跟之前下载的驱动对应的版本即可。

image-20211202083641421

新建纯净项目如下:

image-20211202090416543

然后就需要把我们之前下好的驱动导入到 External Libraries 中,具体操作步骤如图:

先在 File 里打开 Project Structure:

image-20211202090508201

选到 Libraries,点那个?号,选中 Java。

image-20211202090540480

把之前下载好的驱动的路径复制黏贴一下,选中相应版本的驱动,我的 JDK 版本是 9.0.4,所以选 jre8。

image-20211202090606513

然后依次点击中间的 OK,右下角的 Applay,右下角的 OK。

image-20211202090640753

导入成功后如下图:

image-20211202090929163

三、连接数据库

新建 Test 类,敲入模板代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

/**
 * @author olderciyuan
 * @date 2021/12/1 18:34
 */
public class Test {
    private static Connection dbConn = null;
    public static void main(String[] args) {
        try {
            System.out.println("进来了");
//          1.加载驱动
    	    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  /* 网上的博客大多数要求写这句 但实际上官方文档中说最新版本的 JDBC 已经可以自动加载‘合适的’驱动了(详情请看附录3) 
                                                                            只要你正确导入了驱动 不写也是 OK 的 ; 注意是‘合适的’驱动 如果你导入的驱动版本不对 就不行了 */
  	    System.out.println("加载驱动成功!");							   
//	    2.连接
            String dbURL = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=tech1";    /*DatabaseName=你要操作的数据库名 这里我要查询teach1数据库里的学生表 所以是 DatabaseName=tech1
                                                                                    也可以直接 jdbc:sqlserver://localhost:1433;integratedSecurity=true 选择windows本地验证登陆 */ 
            dbConn = DriverManager.getConnection(dbURL, "olderciyuan", "11111111");    //确保这个账号名和密码是对的 能够接入数据库 基本就OK了
            System.out.println("连接数据库成功!");
            String sql="select * from Student";
            PreparedStatement statement=null;
            statement=dbConn.prepareStatement(sql);
            ResultSet res=null;
            res=statement.executeQuery();
            while(res.next()){
                String title=res.getString("Sno");
                System.out.println(title);
            }
        }catch(Exception e) {
            e.printStackTrace();
            System.out.println("连接数据库失败!");
        }
    }
}

运行结果:

image-20211202091858477

至此,配置完成。

四、常见问题

我的 IDEA 是这学期在官网上下载的社区版,不同的版本界面之类的可能会稍有不同,但配置的核心都是一样的(Eclipse 也是),即:去官网下载驱动包——项目中导入驱动包——按固定模板代码连接数据库。

这里再稍微总结一下配置过程中遇到的一些问题:

1、驱动加载失败

image-20211202092208545

image-20211202092301207

image-20211202092813775

如图,会报这仨错误,第一个是调用了 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 的情况下却找不到 SQLServerDriver 类,这个函数的参数就是一个路径,相对路径和绝对路径都可以,一定要确保路径正确,指向驱动包里的 SQLServerDriver 类,出现这个错误一般就是路径输错了或者跟我一样路径带了空格导致读不到;

第二个是还没把驱动导入到 External Libraries 中;

第三个是驱动版本出了问题。

本质都是驱动没搞好,再按照上文所述仔细搞好来即可。

2、连接数据库失败

image-20211202093650125

如图,字面意思,连不上数据库,首先测试一下直接在 SQL Server 上用这个账号密码能不能连上去,如果不能,就想办法设置地能连上,具体怎么做这里不多加赘述。我也不太清楚

如果 SQL Server 上能连接,但 IDEA 这里连不上,那就简单很多了,右击此电脑——管理。

image-20211202124614142

进入服务和应用程序——SQL Server 配置管理器——SQL Server 网络配置里一直点——找到 TCP/IP,点开它,如果没启用的话启用一下。

image-20211202124801754

image-20211202124842638

将 IP1 的 IP地址改为 127.0.0.1,TCP 端口改为 1433,动态端口改为 0;拖到最下面,IPALL 的 TCP 端口改为 1433,动态端口改为 0。

image-20211202124914565

image-20211202124930179

改了之后它会提醒你这个,我们先不急,全都改完了再重启服务。

image-20211202125219985

点开 SQL Native Client 11.0 配置——客户端协议——找到 TCP/IP,没启用的话启用一下它。

image-20211202125504086

image-20211202125658369

这两个都整好之后重启下服务,同样是在这个界面点击:服务和应用程序——服务,然后把带 SQL Server 的服务能重启的全都重启一遍(我也不知道到底要重启哪个,不同的电脑服务名可能会不一样,总之全重启,肯定没问题)。

image-20211202125958701

应该就 OK 了,还不行那我也不会了(逃)。

五、附录

一些官网的资料。

附录1

下载此驱动程序时,有多个 JAR 文件。 JAR 文件名表示它支持的 Java 版本。

image-20211202085938165

附录2

image-20211202130659994

附录3

image-20211202093749081