Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JDBC->SQL Server_Java_Sql Server_Jdbc - Fatal编程技术网

Java JDBC->SQL Server

Java JDBC->SQL Server,java,sql-server,jdbc,Java,Sql Server,Jdbc,我正在尝试让Java应用程序与Microsoft SQL Server数据库对话 我从Microsoft网站下载了sqljdbc_4.0.2206.100_enu.tar.gz,因为它不在普通Maven风格的Java库存储库中托管。 我在本地Maven存储库中手动安装。 我使用以下超级简单的测试代码: 我可以访问SQLWorkbenchJ中的数据库,这是一个基于Java的SQL查询工具,可以对这些SQL命令获得正常、即时的响应。 服务器是Windows7上的SQLServer2005。 客户端是

我正在尝试让Java应用程序与Microsoft SQL Server数据库对话

我从Microsoft网站下载了sqljdbc_4.0.2206.100_enu.tar.gz,因为它不在普通Maven风格的Java库存储库中托管。 我在本地Maven存储库中手动安装。 我使用以下超级简单的测试代码: 我可以访问SQLWorkbenchJ中的数据库,这是一个基于Java的SQL查询工具,可以对这些SQL命令获得正常、即时的响应。 服务器是Windows7上的SQLServer2005。 客户端是Java7。我也尝试过Java8,没有什么不同

    public static void superSimpleJdbcTest(String jdbcUrl, String user, String password) throws SQLException {

        try (Connection dbConnection = DriverManager.getConnection(jdbcUrl, user, password)) {
            System.out.println("opened connection");

            try (Statement statement = dbConnection.createStatement()) {
                System.out.println("created statement");

                System.out.println("executing create table command...");
                statement.execute("create table something (id int primary key, name varchar(100))");
                System.out.println("completed create table command");

                System.out.println("executing insert command...");
                statement.executeUpdate("insert into something (id, name) values (1, 'Brian')");
                System.out.println("insert command completed");
            }
        }
    }

它偶尔工作,但通常挂起CREATETABLE命令。如果我对此进行注释,它将挂起在insert命令上。我无法想象到底出了什么问题。

当SQLWorkbenchJ应用程序运行时,我的简单Java测试应用程序会打开连接并永远挂起任何SQL命令,而不会出现任何错误

我一退出SQLWorkbenchJ应用程序,我的简单Java测试应用程序就如预期的那样完美运行。这真的很奇怪,我终于找到了答案


我改用RazorSQL作为SQL控制台,似乎没有任何类似的问题。

我已经成功地使用了和Microsoft驱动程序JDBC4。我没有尝试过SQLWorkbenchJ,因为我主要用于测试驱动程序。

此实例中挂起的定义是什么?我等待了几分钟,statement.execute或statement.executeUpdate命令从未返回。这些都是琐碎的命令。当我在其他数据库工具上运行相同的命令时,服务器会立即响应。通常是ok,但这些驱动程序/版本最初是为Java 5/6编写的,您尝试使用7或8检查数据库日志。如果您的代码正在连接,但未从数据库获得响应,则很可能数据库不满意,并在日志条目中表示不满意。虽然此链接可能会回答问题,但最好在此处包含答案的基本部分,并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能无效。-好建议。谢谢