我正在使用 Eclipse Oxygen 开发 Java 程序,我想使用 SQL Server 2017 来保存信息。我在其他网站上阅读了如何做到这一点,但是,它对我不起作用。
到目前为止我已经完成的步骤:
- 我下载了Microsoft JDBC Driver 6.0 for SQL Server。
- 我将它添加到我在 Eclipse Oxygen 中的项目中。
- 我在项目的 Java 构建路径中添加了驱动程序。
- 我使用 SQL Server Management Studio v17.3 创建了我的数据库。
- 在 SQL Server 网络配置中,我启用了 TCP/IP 和命名管道。
- 在 Windows Defender 防火墙中,我打开了端口 1433。
我的代码是:
public class ConexionSQL {
// Librería de SQL
public String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
// Nombre de la base de datos
public String database = "industriaCine";
// Host
public String hostname = "localhost";
// Puerto predeterminado para SQL Server
public String port = "1433";
// Ruta de nuestra base de datos ("integratedSecurity=true" establece que usaremos la autenticación integrada de Windows)
public String url = "jdbc:sqlserver://" + hostname + ";databaseName=" + database + ";integratedSecurity=true";
public Connection conectarSQL() {
Connection conn = null;
try {
Class.forName(driver);
conn = DriverManager.getConnection(url);
} catch (ClassNotFoundException | SQLException e) {
JOptionPane.showMessageDialog(null, "SQLException:\n" + e, "Error: conectarSQL()", JOptionPane.ERROR_MESSAGE);
}
return conn;
}
}
在 Eclipse 中,我在控制台中收到这些错误:
2017 年 11 月 5 日上午 9:33:23 com.microsoft.sqlserver.jdbc.AuthenticationJNI 警告:无法加载 sqljdbc_auth.dll 原因:java.library.path 中没有 sqljdbc_auth
com.microsoft.sqlserver.jdbc.SQLServerException:此驱动程序未配置为集成身份验证。ClientConnectionid:fe7aa3ab-3308-4602-9918-ef166b69118
我需要什么才能连接到 SQL Server?
我的代码有问题吗?
好像你的项目不知道sqljdbc42.jar库中包含的类
将文件复制到您的项目是不够的,您必须将库从“构建路径”添加到项目中。
你做了这一步吗?如果没有,您必须转到项目属性(项目上的右键 > 属性),转到“Java 构建路径”选项卡,然后在“库”部分按“添加 JAR”按钮并选择 sqlserver42 .jar 文件
也许你错过了 sqlserver 的 JDBC 驱动程序附带的库是 (auth) 文件夹中的 *.dll,你必须把它放在你的主项目中。它们用于 x86 和 x64 两种架构。然后重新启动 SQLServer 服务以保存 SQLserver 配置管理器更改。