2012-08-07 30 views
7

Soy nuevo en primavera. Estoy desarrollando una aplicación CRUD utilizando la plantilla spring jdbc. He terminado con insertar y seleccionar. pero en la actualización estoy enfrentando algún problema. ¿Alguien puede proporcionarme un ejemplo simple de actualización y eliminar utilizando jdbctemplate. con antelación.actualizar una fila usando la primavera JdbcTemplate

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

cuando hago clic en el botón de actualización de los valores editados deben actualizarse en mi base de datos de acuerdo con el identificador de fila, mi problema es cómo asignar el identificador de fila de JSP al controlador.

+0

¿Qué problema se enfrenta? Por favor, publique un código y el error que encuentre. –

+0

desplácese a los métodos de actualización, muchas opciones http://static.springsource.org/spring/docs/3.0.x/api/org/springframework/jdbc/core/JdbcTemplate.html – NimChimpsky

+0

no hay ningún error en la consola, pero la operación de actualización no se está realizando. compartí mi controlador de aquí .. –

Respuesta

24

Directamente desde the documentation:

El siguiente ejemplo muestra una columna actualizada para un determinado clave primaria . En este ejemplo, una instrucción SQL tiene marcadores de posición para los parámetros de la fila . Los valores de los parámetros se pueden pasar como varargs o alternativamente como una matriz de objetos. Por lo tanto primitivas deben envueltos en las clases de envoltura primitivas explícita o utilizando de auto-boxing.

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); 
    } 
} 
+0

Gracias una tonelada .. me olvidó mencionar que se debe hacer en JSP. No puedo asignar el valor JSP al controlador. –

+1

Los JSP y los controladores no tienen nada que ver con su pregunta. Ya sea que lo haga en un JSP o no, la API de JdbcTemplate es la misma. Y no, no debería hacerse en un JSP. Los JSP se usan para generar marcas HTML. Actualizar una fila en una base de datos no tiene nada que hacer en un JSP. –

+0

las operaciones que quiero hacer se pueden realizar fácilmente en hibernación. pero no sé hibernar y no tengo tiempo para aprenderlo. así que tengo que hacerlo en la plantilla jdbc. JSP es obligatorio para mí porque es mi interfaz de usuario –

1

Usted puede simplemente utilizar request.getParamater() o command object para pasar valores de JSP al controlador.

Cuestiones relacionadas