我真的在这里看到了一个谜。我在 Eclipse 中创建了一个 Java 程序并建立了 JDBC 连接。代码如下:
import java.sql.*;
public class Login {
public static void main(String[] args) {
try {
// Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection connection = DriverManager
.getConnection("jdbc:sqlserver://localhost;databaseName=testdb; integratedSecurity=true;");
//adding port 1433 doesn't make a difference
System.out.println("Connection successful");
Statement st = connection.createStatement();
ResultSet rs = st.executeQuery("select * from testtable");
while (rs.next()) {
line = rs.getString(2);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
当我在 Eclipse 中运行它时,一切都很好。数据库和表都很好, Java Built Path中的库和身份验证都设置好了,我得到了我想要的结果,即“Hello World”,它是所选表中的一个字符串。
但是创建一个可执行的 JAR 文件并运行它会引发异常“此驱动程序未配置为集成身份验证”。它甚至没有连接,所以即使数据库中有错误,此时也没有关系。
更令人困惑的是,几周前,我还创建了一个可执行的 JAR 文件并且它工作了!
操作系统:Windows Vista 家庭高级版 x86
JDBC 驱动程序位置:“C:\sqljdbc_4.0\enu\sqljdbc4.jar”
本机库位置:“C:\sqljdbc_4.0\enu\auth\x86”
Java 版本:Java 7 更新 17 和 JDK 7 更新 17
以前,我使用更新 21,但我改回来检查驱动程序是否可能是原因。
那么,有什么建议吗?我将不胜感激!