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;
すべきではない方法は '呼び出されますsubmitUpdatedUserInformation'ので、何の値である場合にんuser.user_id? –
エラーメッセージ*の正確なテキストはどこですか? –