使用spring jdbctemplate更新一行

smy*_*dsh 9 spring jdbctemplate

我是新来的春天.我正在使用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";
    }
Run Code Online (Sandbox Code Playgroud)

当我点击更新按钮时,应该根据行ID在我的数据库中更新编辑的值,我的问题是如何将行id从jsp映射到控制器.

JB *_*zet 33

直接来自文档:

以下示例显示了针对某个主键更新的列.在此示例中,SQL语句具有行参数的占位符.参数值可以作为varargs传递,也可以作为对象数组传递.因此,原语应该显式地包装在原始包装类中或使用自动装箱.

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

  • JSP 和控制器与您的问题无关。无论是否在 JSP 中执行,JdbcTemplate API 都是相同的。不,它不应该在 JSP 中完成。JSP 用于生成 HTML 标记。更新数据库中的一行与 JSP 无关。 (2认同)