You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

连接SQL Server时出错,寻求Selenium数据库测试技术帮助

解决SQL Server JDBC连接错误的问题

看起来你在通过JDBC连接SQL Server时遇到了问题,我帮你梳理下代码里的几个关键问题和修复方案:

1. 错误的驱动类名

你当前用的com.microsoft.sqlserver.jdbc.SQLServerDataSource是数据源实现类,不是JDBC驱动的核心类名,正确的驱动类应该是:

String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";

2. 完整的连接代码示例

你注释掉了DriverManager.getConnection()的核心逻辑,这里给你补全完整的可运行代码(适配Windows身份验证场景):

try {
    // 正确的连接字符串
    String connectionUrl = "jdbc:sqlserver://Leverage-Laptop\\SQLEXPRESS2008R2:1433;integratedSecurity=True;databaseName=TestDataBase;";
    // JDBC 4.0+版本驱动可省略这行,旧版本需要保留手动加载驱动
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    // 获取数据库连接
    Connection con = DriverManager.getConnection(connectionUrl);
    
    // 这里可以添加你的数据库操作逻辑,比如执行查询、更新等
    System.out.println("连接成功!");
    
} catch (ClassNotFoundException e) {
    System.err.println("找不到SQL Server驱动类,请检查依赖包是否正确引入");
    e.printStackTrace();
} catch (SQLException e) {
    System.err.println("数据库连接失败,请检查连接字符串、实例配置或权限");
    e.printStackTrace();
}

3. Windows身份验证的关键注意事项

当你使用integratedSecurity=True时,需要额外注意:

  • 如果使用旧版驱动(如sqljdbc4.jar),必须把对应系统架构的sqljdbc_auth.dll(x86/x64)放到JRE的bin目录下,或者配置系统环境变量让JVM能找到它
  • 新版驱动(如mssql-jdbc)支持纯Java实现的Windows身份验证,可以改用authenticationScheme=NTLM参数,无需依赖dll文件

4. 额外排查方向

  • 确认SQL Server实例SQLEXPRESS2008R2已启用TCP/IP协议,且允许远程连接
  • 检查1433端口是否被防火墙拦截,或者SQL Server是否实际使用该端口(可以在SQL Server配置管理器中查看)
  • 验证当前Windows用户是否拥有TestDataBase数据库的访问权限

内容的提问来源于stack exchange,提问作者Farheen Khanum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:08:33