web-dev-qa-db-fra.com

Mettre à jour une ligne à l'aide de Spring JDBCTemplate

Je suis nouveau au printemps. Je développe une application CRUD à l'aide du modèle Spring JDBC. J'ai fini avec insérer et sélectionner. Mais dans la mise à jour, je suis confronté à un problème. Quelqu'un peut-il me fournir un exemple simple de mise à jour et supprimer à l'aide de JDBCtemplate. Thnks à l'avance.

Mon contrôleur-

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

lorsque je clique sur le bouton de mise à jour, les valeurs modifiées doivent être mises à jour dans My DB en fonction de l'ID de ligne, mon problème est de mapper l'ID de ligne de JSP au contrôleur.

8
smya.dsh

Directement de la documentation :

L'exemple suivant montre une colonne mise à jour pour une clé primaire donnée. Dans cet exemple, une instruction SQL comporte des espaces réservés pour les paramètres de ligne. Les valeurs de paramètre peuvent être transmises sous forme de varargs ou alternativement en tant que réseau d'objets. Ainsi, les primitives doivent être enveloppées dans les classes d'emballage primitives explicitement ou à l'aide de la boxe automatique.

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

Vous pouvez simplement utiliser request.getParamater() ou command object Pour passer des valeurs de JSP au contrôleur.

1
sonam