gpt4 book ai didi

java - JDBC 不会更新 PostgreSQL 数据库

转载 作者:行者123 更新时间:2023-11-29 13:21:19 25 4
gpt4 key购买 nike

使用 Spring、PostgreSQL 和 JDBC。数据库已设置,我已成功使用 JDBC 从数据库中提取数据。但是,当使用表单进行 POST 时,更改不会通过。在 Debug模式下,模型中存在正确的属性,因此我确信错误出在数据库连接中。

形式:

<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>

Controller :

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

userDAO.updateUserInformation(user);

return "redirect:/user-home";
}

DAO 方法:

@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());
}

我知道 springmvc-servelet.xml 文件中有关于事务的配置,但我过去使用 JDBC 时没有遇到任何问题。

从 DB init 创建用户:

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;

最佳答案

不应该

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

成为

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

关于java - JDBC 不会更新 PostgreSQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41254642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com