我正在使用NetBeans IDE 7.0.1,并且只使用Microsoft的JDBC测试Microsoft SQL Server连接。我有这个测试程序:
package testsql;
import java.sql.*;
public class TestSQL {
public static void main(String[] args) {
Statement stmt = null;
ResultSet rs = null;
Connection con = null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String connectionURL =
"jdbc:sqlserver://foo.bar.com:1433;" +
"databaseName=flintstone;integratedSecurity=true;";
con = DriverManager.getConnection(connectionURL);
} catch (SQLException e) {
System.out.println("SQL Exception: " + e.toString());
} catch (ClassNotFoundException e) {
System.out.println("Class Not Found Exception: " + e.toString());
}
try {
String SQL = con.nativeSQL("SELECT COUNT(*) AS Count FROM fred");
stmt = con.createStatement();
rs = stmt.executeQuery(SQL);
while (rs.next()) {
System.out.println("Count = " + rs.getString("Count"));
}
} catch (SQLException e) {
System.out.println("SQL Exception: " + e.toString());
}
}
}
我将NetBeans VM Options属性设置为-Djava.library.path=C:\lib
。
当我在IDE中运行代码时,程序会在executeQuery处冻结并“永久”运行。不会返回任何错误,也不会引发超时。
但是,如果我构建软件包然后使用java -Djava.library.path=C:\lib -jar TestSQL.jar
运行它,我会返回预期的数据:Count = 7349
。
答案 0 :(得分:0)
我现在正在IDE中使用该项目。它原来是我正在使用的JDK的版本。用JDK1.7替换JDK1.6解决了这个问题,它现在按预期工作。