2016-12-21 13 views
1

Spring、PostgreSQLおよびJDBCの操作。データベースが設定されており、JDBCを使用してデータベースからデータを取得できます。ただし、フォームを使用してPOSTを作成すると、変更は反映されません。デバッグモードでは、モデルに正しい属性が存在するため、エラーがデータベース接続にあると確信しています。JDBCはPostgreSQLデータベースを更新しません

形式:

<form action="update-user" method="POST"> 
    <ul class="form-flex-outer"> 
     <li> 
      <label for="username">Username:</label> 
      <input type="text" name="username" value="${ currentUser.username }" /> 
     </li> 
     <li> 
      <label for="password">Password:</label> 
      <input type="text" name="password" value="${ currentUser.password }" /> 
     </li> 
     <li> 
      <label for="email">Email:</label> 
      <input type="text" name="email" value="${ currentUser.email }" /> 
     </li> 
     <li> 
      <input type="submit" value="Submit changes" /> 
      <input type="hidden" value="${ currentUser.userId }" /> 
     </li> 
    </ul> 
</form> 

コントローラ:

@RequestMapping(path="/update-user", method=RequestMethod.POST) 
public String submitUpdatedUserInformation(User user) { 

    userDAO.updateUserInformation(user); 

    return "redirect:/user-home"; 
} 

DAO方法:私は取引に関するspringmvc-servelet.xmlファイル内の構成がある理解し、私が持っている

@Override 
public void updateUserInformation(User user) { 

    String sqlQuery = "UPDATE users " + 
         "SET username = ?, " + 
          "password = ?, " + 
          "email = ?, " + 
          "updated_at = NOW() " + 
         "WHERE user_id = ?"; 

    jdbcTemplate.update(sqlQuery, user.getUsername(), user.getPassword(), user.getEmail(), user.getUserId()); 
} 

JDBCを使って過去に問題なく動作しました。 DBの初期化から

ユーザーの作成:

CREATE USER app_owner WITH PASSWORD 'app_owner1'; 
GRANT ALL 
ON ALL TABLES IN SCHEMA public 
TO app_owner; 

GRANT ALL 
ON ALL SEQUENCES IN SCHEMA public 
TO app_owner; 
+0

すべきではない方法は '呼び出されますsubmitUpdatedUserInformation'ので、何の値である場合にんuser.user_id? –

+0

エラーメッセージ*の正確なテキストはどこですか? –

答えて

1

<input type="hidden" value="${ currentUser.userId } }" /> 

<input type="hidden" value="${ currentUser.userId }" name="userid" /> 
+0

'}}' '' '' '' '' 'でもいいですか? –

+0

oh yes @a_horse_with_no_name私の不注意なコピーが貼り付けられ、2cが追加されました – e4c5

+0

ありがとうございます@ e4c5 - 私はuserIdをフォームにコントローラに渡すことを忘れていました。 –

関連する問題