IDEA程序连接SQL server数据库,实现数据库信息在控制台输出

 

一、实验目的

  1. 了解如何在Java程序中链接SQL Server数据库,实现程序直接访问数据库中的数据。
  2. 学习数据库操作的基本流程,通过下载和配置JDBC驱动包,编写Java代码来连接数据库,并执行数据查询,从而实践和掌握JDBC编程技术。

二、实验环境

Windows 10 系统、JDK1.8、 IDEA2024,SQL server软件

三、实验内容与步骤

1、在Microsoft官网下载并安装SQL server数据库以及IDEA2024;

2、在SQLserver数据库管理器中启动服务和更改协议端口协议;

3、重启服务后,在数据库中新建库和表并插入数据;

4、在mvnrepository.com官网下载‘mssql-jdbc-7.4.1.jre8.jar’包并将包导入IDEA2024中,并在项目结构中新建库,选中包即可;

5、在IDEA2024中编写代码连接数据库,调试,将表显示在控制台中即完成实验。

  • 实验过程与分析
  1. 安装完SQLserver后,使用Windows方式登陆后,打开建立新用户“SA”并打开链接权限,默认是关闭状态的;

      2、关闭SQLserver软件,重启服务并重新打开软件;

      3、在SQLserver数据库管理器中启动服务和协议并更改端口号,重启服务;

      4、建立数据库和新表并插入数据;

      5、在mvnrepository.com官网下载‘mssql-jdbc-7.4.1.jre8.jar’包;

     6、并将包导入IDEA2024中,并在项目结构中新建库,选中包即可;

7、编写程序

程序如下:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class test {
    public static void main(String[] args) {
        String uri = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=test;encrypt=true;trustServerCertificate=true";
        Connection conn = null;
        Statement stmt = null;
        try {
            // 1. 加载SQL Server JDBC驱动程序
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            // 2. 建立连接
            conn = DriverManager.getConnection(uri, "sa", "sa");
            // 3. 创建Statement对象
            stmt = conn.createStatement();
            // 4. 执行查询
            String sql = "SELECT * FROM student";
            ResultSet rs = stmt.executeQuery(sql);
            // 4. 处理结果
            while (rs.next()) {
                // 从结果集中获取数据
                int id = rs.getInt("sno");
                String name = rs.getString("sname");
                String sex = rs.getString("ssex");
                int age = rs.getInt("sage");
                String dept = rs.getString("sdept");

                System.out.print(id + "\t");
                System.out.print(name + "\t");
                System.out.print(sex + "\t");
                System.out.print(age + "\t");
                System.out.print(dept + "\t");
                System.out.println("\n");
            }
        } catch (SQLException | ClassNotFoundException e) {
            e.printStackTrace();
        } finally {
            // 5. 关闭结果集、Statement和Connection
            try {
                if (stmt!= null) {
                    stmt.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                if (conn!= null) {
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

运行后发现有报错:(报错截图)

报错问题是:(动态端口未配置,配置动态端口;)

配置完成后,问题解决,正确运行结果如下:

  • 实验总结

在此实验中,成功实现了使用Java程序连接SQL Server数据库并查询数据。实验过程中,先安装了SQL Server数据库和IDEA2024,接着在数据库管理器中启动服务、更改端口协议,并新建了数据库和表。从mvnrepository.com下载了所需的JDBC驱动包,并在IDEA中配置了项目结构。通过编写Java代码,他实现了数据库连接和数据查询,最终在控制台成功显示了查询结果。

在实验过程中遇到了动态端口配置的问题,通过查阅资料和调整配置解决了这一问题。整个实验不仅加深了对Java数据库操作的理解,也提高了编程思考能力。

### 关于 IDEA 连接 SQL Server 数据库时 'Process finished with exit code 0' 当遇到 `Process finished with exit code 0` 的情况,在某些上下文中这可能表示程序正常结束,但在特定场景下也可能意味着配置或执行过程中存在问题。对于IDEA连接SQL Server数据库的情况而言,此退出码通常不是错误指示,而是表明进程已成功完成其操作[^1]。 然而如果预期有更多交互或查询结果返回而未见,则可能是由于以下几个方面引起: #### 配置检查 - **驱动类名**:确认使用的JDBC URL以及Driver Class Name是否正确无误。针对Microsoft SQL Server, 应该使用类似于 `com.microsoft.sqlserver.jdbc.SQLServerDriver` 的驱动名称。 - **URL格式**: JDBC连接字符串应当遵循标准模式,例如:`jdbc:sqlserver://localhost:1433;databaseName=YourDatabaseName` 。注意端口号、服务器地址和数据库名字部分需根据实际情况调整。 #### 编程逻辑审查 - 如果是在编写Java应用程序来访问数据库,确保所有的SQL语句都得到了恰当的执行,并且任何异常都被捕获并记录下来以便调试。可以尝试打印SQLException中的详细信息以帮助定位潜在问题。 ```java try { Connection conn = DriverManager.getConnection(url, user, password); } catch (SQLException e) { System.out.println("Connection Failed! Check output console"); e.printStackTrace(); } ``` #### 日志级别设置 适当提高日志等级可以帮助获取更详细的运行时信息。通过修改logback.xml或其他相应的logging configuration file,使应用能够输出更多的debug级别的消息到控制台或者文件中去。 #### 测试环境验证 有时本地环境中一切正常却在其他机器上出现问题,这时建议在同一网络环境下不同计算机之间重复实验过程,排除网络因素干扰的可能性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值