尝试使用sqljdbc41
jdk 1.8
将我的java Web应用程序与MS-SQL服务器连接起来。这是数据库连接代码 -
Connection connection;
String url = "jdbc:sqlserver://localhost:1433;databaseName=Lista;integratedSecurity=true";
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
connection = DriverManager.getConnection(url);
当我尝试将一些值插入数据库时,如 -
PreparedStatement ps = connection.prepareStatement("INSERT INTO user_informations VALUES(?,?,?)");
ps.setString(1, "value");
ps.setString(2, "value");
ps.setString(3, "value");
ps.executeUpdate();
每次都会出现以下错误 -
com.microsoft.sqlserver.jdbc.SQLServerException:此驱动程序不是 已配置为集成身份验证
以下是我尝试过的一些信息 -
sqljdbc41
的路径。sqljdbc_auth.dll
的路径。sqljdbc41.jar
添加到我的Nebeans
项目库中。sqljdbc_auth.dll
添加到jdk
和jre
下的bin文件夹中。jdk
是程序文件文件夹下的64 bit
而不是程序文件(x86)。修改
现在我体验了一件新事物 - 在我第一次部署项目后重启我的电脑后,它工作得很好但是当我对我的代码进行任何更改并重新运行项目时它不起作用!
答案 0 :(得分:0)
对我来说问题是有两个java安装,其中一个是标准安装,它是64位,另一个包含在我的oracle jdeveoper安装中(它是应用程序使用的那个给出错误)而令人惊讶的是它是32位。 我只是将正确的dll放在我的应用程序使用的java安装中,一切顺利
答案 1 :(得分:0)
sqljdbc_auth.dll
需要使用Windows身份验证或Kerberos身份验证。
从Microsoft获取dll并通过以下方式安装:
将库放在某个文件夹中,然后在命令行中添加路径:
java -Djava.library.path=<library path>...
mssql-jdbc驱动程序和auth dll应为:
还要在下载页面上检查具有Java版本的jdbc兼容性列表。