2016-12-26 5 views
-1

Привет всем, код работает без набора результатов, но мне нужно, чтобы он был включен для добавления его в результирующий набор. Есть ли способ сделать это в одном методе? Этот код используется для обновления сведений о пользователе в моей программе java. Я использую набор результатов для получения сведений о пользователе.int can not быть преобразован в resultSet

public User editUserDetails(int userID ,String email, String password, String fName, String lName, String bio, String image) { 

    boolean found = false; 
    Connection c = DBHelperClass.getConnection(); 
    String query = "UPDATE user SET email= ? , password= ?,fName= ?,lName= ?,bio= ?,image=? WHERE userID= ?"; 

    if (c != null) { 
     try { 
      PreparedStatement inserter = c.prepareStatement(query); 
      inserter.setString(1, email); 
      inserter.setString(2, password); 
      inserter.setString(3, fName); 
      inserter.setString(4, lName); 
      inserter.setString(5, bio); 
      inserter.setString(6, image); 
      inserter.setInt(7, userID); 

      System.out.println("Update user: " + query); 
      ResultSet resultSet = inserter.executeUpdate(); 
      inserter.executeUpdate(); 
      inserter.close(); 

      while (resultSet.next()) { 
       this.setUserID(resultSet.getInt("userID")); 
       this.email = resultSet.getString("email"); 
       this.setPassword(resultSet.getString("password")); 
       this.type=resultSet.getString("type"); 
       this.fName=resultSet.getString("fName"); 
       this.lName=resultSet.getString("lName"); 
       found = true; 

      } 
     } catch (SQLException ex) { 
      Logger.getLogger(User.class.getName()).log(Level.SEVERE, null, ex); 
     } 

    } 
    return this; 
} 

ошибка в строке:
ResultSet Resultset = inserter.executeUpdate();

ошибки: INT не может быть преобразована в Resultset

+0

В какой строке вы перед проблемой –

+0

Этой строку ResultSet Resultset = inserter.executeUpdate(); – Pavol

+0

На самом деле, в чем проблема, я не мог понять. Можете ли вы быть более ясными? –

ответ

1

Вы построить запрос, используя строку «запрос», который является оператором обновления, обновление, как вставка, она не возвращает набор результатов.

Спецификация ExecuteUpdate является:

«выполняет оператор SQL в этом PreparedStatement объект, который должен быть Манипулирование SQL Data Language (DML) заявление, такие как INSERT, UPDATE или DELETE, или оператор SQL, который ничего не возвращает, , такой как оператор DDL. "

(https://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html)

Вы должны изменить свой код inserter.executeQuery(); , но вам также нужно будет изменить фактический запрос на оператор select или любой оператор, который что-то возвращает.

Надеется, что это помогает

 Смежные вопросы

  • Нет связанных вопросов^_^