web-dev-qa-db-ja.com

Spring jdbctemplateを使用して行を更新する

私は春が初めてです。 Spring jdbcテンプレートを使用してCRUDアプリケーションを開発しています。挿入と選択が完了しました。しかし、更新ではいくつかの問題に直面しています。誰でも私にjdbctemplateを使用した更新と削除の簡単な例を提供できますか?事前にt​​hnks。

MY CONTROLLER-

@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";
    }

更新ボタンをクリックすると、編集された値がDBで行IDに従って更新されるはずです。問題は、行IDをjspからコントローラーにマップする方法です。

8
smya.dsh

ドキュメント から直接:

次の例は、特定の主キーに対して更新された列を示しています。この例では、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);
    }
}
31
JB Nizet

request.getParamater()またはcommand objectを使用して、jspからコントローラーに値を渡すことができます。

1
sonam