2014-01-20 3 views
1

Я использую JDK 1.6. С этим я хочу подключиться к базе данных Access. Для этого я зарегистрировал Системный DNS &, пытающийся подключиться к этой базе данных с помощью соединения JDBC-ODBC.JDBC-ODBC SQLException: Общая ошибка

Когда я подключаю его &, попробуйте выполнить простой запрос, чтобы проверить, установлено ли соединение правильно или нет.

Вот мой фрагмент кода для выполнения запроса.

public void testConnection() { 
    Connection conn = DBUtil.getConnection(); 
    Statement stmt = null; 

    try { 
     stmt = conn.createStatement(); 

     ResultSet rs = stmt.executeQuery("SELECT id FROM inventory"); 

     System.out.println("Connection Successful"); 
    } catch (Exception ex) { 
     ex.printStackTrace(); 
    } finally { 
     try { 
      if (stmt != null) { 
       stmt.close(); 
      } 

      conn.close(); 
     } catch (SQLException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

Я зову testConnection() метод более чем один раз.

Теперь дело в том, что запрос работает нормально в первый раз, остальные три раза он дает ошибку, о чем говорится ниже.

java.sql.SQLException: General error 
at sun.jdbc.odbc.JdbcOdbc.throwGenericSQLException(JdbcOdbc.java:7086) 
at sun.jdbc.odbc.JdbcOdbc.SQLAllocStmt(JdbcOdbc.java:173) 
at sun.jdbc.odbc.JdbcOdbcConnection.prepareStatement(JdbcOdbcConnection.java:465) 
at sun.jdbc.odbc.JdbcOdbcConnection.prepareStatement(JdbcOdbcConnection.java:443) 

Пожалуйста, дайте мне знать, где все пойдет не так?

Примечание: Я запускаю программу на Windows 7, 64-битный вариант. Зарегистрированный источник данных, используя 32 разрядный драйвер на локальной машине (от пути: %windir%/SYSWOW64/odbcad32.exe)

ответ

0

Я действительно не уверен, но попробовать что-то вроде этого:

public void testConnection() { 
    Connection conn = null; 
    PreparedStatement pre =null; 
    ResultSet rs =null; 

    try { 
     conn = DBUtil.getConnection(); 
     PreparedStatement pre = conn.prepareStatement("select id from inventory"); 
     rs = pre.executeQuery(); 

     System.out.println("Connection Successful"); 
    } catch (Exception ex) { 
     ex.printStackTrace(); 
    } finally { 
      conn.close(); 
    } 
} 
Смежные вопросы