使用spring jdbctemplate更新一行
Posted
技术标签:
【中文标题】使用spring jdbctemplate更新一行【英文标题】:update a row using spring jdbctemplate 【发布时间】:2012-08-07 10:09:48 【问题描述】:我是春天的新手。我正在使用 spring jdbc 模板开发一个 CRUD 应用程序。我完成了插入和选择。但在更新中我面临一些问题。任何人都可以为我提供一个使用 jdbctemplate 进行更新和删除的简单示例。 提前谢谢。
我的控制器-
@RequestMapping(method = RequestMethod.GET)
public String showUserForm(@ModelAttribute(value="userview") User user,ModelMap model)
List list=userService.companylist();
model.addAttribute("list",list);
return "viewCompany";
@RequestMapping( method = RequestMethod.POST)
public String add(@ModelAttribute(value="userview") @Valid User user, BindingResult result)
userValidator.validate(user, result);
if (result.hasErrors())
return "viewCompany";
else
userService.updateCompany(user);
System.out.println("value updated");
return "updateSuccess";
当我单击更新按钮时,应根据行 ID 在我的数据库中更新已编辑的值,我的问题是如何将行 ID 从 jsp 映射到控制器。
【问题讨论】:
你面临什么问题?请发布一些代码和您遇到的错误。 滚动到更新方法,很多选项static.springsource.org/spring/docs/3.0.x/api/org/… 控制台没有错误但是没有执行更新操作。我在这里分享了我的控制器.. 【参考方案1】:直接来自the documentation:
以下示例显示了为某个主节点更新的列 钥匙。在此示例中,SQL 语句具有行的占位符 参数。参数值可以作为可变参数或 或者作为对象数组。因此原语应该是 显式包装在原始包装类中或使用 自动装箱。
import javax.sql.DataSource;
import org.springframework.jdbc.core.JdbcTemplate;
public class ExecuteAnUpdate
private JdbcTemplate jdbcTemplate;
public void setDataSource(DataSource dataSource)
this.jdbcTemplate = new JdbcTemplate(dataSource);
public void setName(int id, String name)
this.jdbcTemplate.update(
"update mytable set name = ? where id = ?",
name, id);
【讨论】:
非常感谢 .. 我忘了提到它应该在 JSP 中完成。我无法将 JSP 值映射到控制器.. JSP 和控制器与您的问题无关。无论您是否在 JSP 中执行此操作,JdbcTemplate API 都是一样的。不,它不应该在 JSP 中完成。 JSP 用于生成 html 标记。更新数据库中的一行与 JSP 无关。 我想做的操作可以在hibernate中轻松完成。但我不知道hibernate,也没有时间学习它。所以我必须在 jdbc 模板中进行。 JSP 对我来说是强制性的,因为它是我的 UI 您在 UI 中使用 JSP 这一事实不应该对您如何使用 JdbcTemplate 产生任何影响。无论您是否使用 JSP,JdbcTemplate 的 API 都是相同的。 JSP 用于UI。 JdbcTemplate是用来访问数据库的,和UI层无关,和数据访问层有关。您不应该在 JSP 中有数据访问代码。我不知道你为什么要把 Hibernate 带到桌面上来。 让我们忘记休眠。我的问题是 - 当我单击提交按钮时,更新操作应该在所选行中完成。如何向控制器提供列 ID?【参考方案2】:您可以简单地使用request.getParamater()
或command object
将值从jsp 传递到控制器。
【讨论】:
以上是关于使用spring jdbctemplate更新一行的主要内容,如果未能解决你的问题,请参考以下文章
jdbcTemplate 更新中的 Spring 瞬态数据访问资源异常
关于数据库中字段设置为自增长后,DB表新增一行数据的问题,以及在spring框架中使用jdbcTemplate对象来insert的问题