2014-05-05 58 views
1

我似乎無法解決這個錯誤。我需要ResultSet來獲取實際的Object。錯誤是:java.sql.SQLException: Can not issue data manipulation statements with executeQuery().rs = pst.executeQuery();。代碼:java.sql.SQLException:不能用executeQuery()發出數據操作語句()

Connection con = null; 
PreparedStatement pst = null; 
ResultSet rs = null; 

String url = null; //Set, but not visible in code. 
String user = null; //Set, but not visible in code. 
String password = null; //Set, but not visible in code. 

public Object get(String table, String key){ 
    try { 
     con = DriverManager.getConnection(url, user, password); 

     String query = "SELECT * FROM `" + table + "` WHERE key = ?;"; 
     pst = con.prepareStatement(query); 

     pst.setString(1, key); 
     pst.executeUpdate(); 

     rs = pst.executeQuery(); 

     rs.next(); 

     return rs.getObject(1); 

    } catch (SQLException ex) { 

     return null; 

    } finally { 
     try { 
      if (rs != null) { 
       rs.close(); 
      } 
      if (pst != null) { 
       pst.close(); 
      } 
      if (con != null) { 
       con.close(); 
      } 

     } catch (SQLException ex) { 

      return null; 

     } 
    } 
} 
+1

當您嘗試執行類似DDL語句出現該錯誤消息'CREATE TABLE之間 FOO(id int);'使用'executeQuery'方法。您提供的代碼似乎並不是出現此異常的地方。 –

+3

您正在使用pst.executeUpdate();在選擇查詢上。爲什麼? –

+0

@VMai我想你可能已經爲我修好了,現在正在測試。 – OHQCraft

回答

相關問題