小编ppw*_*ppw的帖子

尝试连续第二次运行 SQL 查询时 Java 挂起

问题:

我有一些连接到数据库的代码,根据条件检查是否找到记录,如果找到记录,则返回 3 并生成一条消息,让用户说已经存在包含这些详细信息的记录。如果记录尚不存在,则执行插入查询以创建记录。

问题是,选择查询在短时间连续第二次执行时,似乎在结果是找到记录时挂起(返回 3,向用户生成消息) - 因为它没有通过代码进行,没有错误报告并且程序上的 GUI 没有响应(无法单击任何其他对象并且无法响应关闭窗口)。Netbeans 仍然运行良好,我能够通过它停止程序的运行。

测试:

A) 如果我在第一次成功执行后在同一个数据库上运行另一个查询,但在不同的表上,代码正确执行,但返回尝试再次执行原始查询会导致它挂起。

B) 执行代码并且不返回任何结果不会导致它挂起。(见下面的代码)

C) 在 SE 上扫描了其他类似的问题,但似乎找不到任何解决我的问题的方法。

使用的资源: ucanaccess-2.0.9.3、Netbeans IDE 8.1、JDK 1.8(由于与公司旧版本的兼容性问题,编译为 1.6)、公司网络上的 MS Access 数据库

代码:

public int insertAddPeriod(String strProjectNumber, String strYear, String strPeriod){
    System.out.println("Checking to see if record already exists: " + strProjectNumber + ", Year: " + strYear + ", Period: " + strPeriod);
    String strSQLString = null;

    try{

        strSQLString = "SELECT Program_No, Year, Period FROM tblCost WHERE Program_No = ? AND Year = …
Run Code Online (Sandbox Code Playgroud)

java netbeans prepared-statement sql-insert ucanaccess

1
推荐指数
1
解决办法
1124
查看次数