Я использую NetBeans IDE 7.0.1 и только что тестировал соединение Microsoft SQL Server с использованием JDBC от Microsoft. У меня есть эта тестовая программа:
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, программа зависает при выполнении запроса и работает «навсегда». Ошибка не возвращается и тайм-аут не возникает.
Однако, если я соберу пакет, а затем запущу его с помощью java -Djava.library.path=C:\lib -jar TestSQL.jar
, я получу ожидаемые данные: Count = 7349
.