English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

个字段: ID,名称,薪水和名称。

La aplicación CRUD (crear, leer, actualizar y eliminar) es la aplicación más importante para crear cualquier proyecto. Proporciona ideas para desarrollar proyectos grandes. En SpringMVC, podemos desarrollar una aplicación CRUD simple.

在这里,我们使用 Aquí, utilizamos JdbcTemplate

进行数据库交互。

创建一个表99Aquí, utilizamos la tabla emp existente en la base de datos MySQL.4表。它具有


个字段: ID,名称,薪水和名称。

1Spring MVC CRUD示例

、将依赖项添加到pom.xml文件。

 .0.-- <!//https:/mvnrepository.com/artifact/spring-pom.xml -->
jdbc
    <dependency>/<groupId>org.springframework
    <groupId>org.springframework-webmvc/<artifactId>jdbc
    <version>5.1.1.RELEASE</version>
</dependency>
.0.-- <!//https:/mvnrepository.com/webmvc/org.apache.tomcat-tomcat -->
jdbc
    jasper/<groupId>org.springframework
    <groupId>org.apache.tomcat-<artifactId>tomcat/<artifactId>jdbc
    <version>9java<12</version>
</dependency>
    .0.-- <!//https:/mvnrepository.com/alpha/alpha-jasper -->
jdbc  
    javax.servlet/<groupId>org.springframework  
    api-<artifactId>servlet/<artifactId>jdbc  
    <version>3api-.0-1</version>  
</dependency>
.0.-- <!//https:/mvnrepository.com/alpha/jstl -->
jdbc
    javax.servlet/<groupId>org.springframework
    <groupId>javax.servlet/<artifactId>jdbc
    <version>1.2</version>
</dependency>
    .0.-- <!//https:/mvnrepository.com/<artifactId>jstl/<artifactId>jstl-<artifactId>mysql-mysql -->
jdbc
    java/<groupId>org.springframework
    <groupId>mysql-<artifactId>mysql-connector/<artifactId>jdbc
    <version>8java<11</version>
</dependency>
    .0.-- <!//https:/mvnrepository.com/artifact/spring-org.springframework -->
jdbc
    <dependency>/<groupId>org.springframework
    <groupId>org.springframework-<artifactId>spring/<artifactId>jdbc
    <version>5.1.1.RELEASE</version>
</dependency>

2、创建bean类

Aquí, la clase bean contiene variables que corresponden a los campos existentes en la base de datos (así como métodos setter y getter).

Emp.java

paquete com.w3codebox.beans;  
  
public class Emp {  
private int id;  
private String name;  
private float salary;  
private String designation;  
  
public int getId() {  
    return id;  
}  
public void setId(int id) {  
    this.id = id;  
}  
public String getName() {  
    return name;  
}  
public void setName(String name) {  
    this.name = name;  
}  
public float getSalary() {  
    return salary;  
}  
public void setSalary(float salary) {  
    this.salary = salary;  
}  
public String getDesignation() {  
    return designation;  
}  
public void setDesignation(String designation) {  
    this.designation = designation;  
}  
  
}

3、创建控制器类

EmpController.java

paquete com.w3codebox.controllers;   
import java.util.List;  
import org.springframework.beans.factory.annotation.Autowired;  
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;  
import org.springframework.web.bind.annotation.PathVariable;  
import org.springframework.web.bind.annotation.RequestMapping;  
import org.springframework.web.bind.annotation.RequestMethod;   
import com.w3codebox.beans.Emp;  
import com.w3codebox.dao.EmpDao;  
@Controller  
public class EmpController {  
    @Autowired  
    EmpDao dao;//inyectará dao desde el archivo XML  
      
    /*Muestra un formulario para ingresar datos, aquí "command" es un atributo de solicitud reservado 
     *que se utiliza para mostrar datos de objetos en forma 
     */  
    @RequestMapping("/empform")  
    public String showform(Model m){  
        m.addAttribute("command", new Emp());
        return "empform"; 
    }  
    /*It saves object into database. The @ModelAttribute puts request data 
     *  into model object. You need to mention RequestMethod.POST method  
     *  because default request is GET*/  
    @RequestMapping(value="/save", method = RequestMethod.POST)  
    public String save(@ModelAttribute("emp") Emp emp){  
        dao.save(emp);  
        volver "/viewemp";//will redirect to viewemp request mapping  
    }  
    /* It provides list of employees in model object */  
    @RequestMapping("/viewemp"  
    public String viewemp(Model m){  
        List<Emp> list = dao.getEmployees();  
        m.addAttribute("list", list);
        return "viewemp";  
    }  
    /* It displays object data into form for the given id.  
     * The @PathVariable puts URL data into variable.*/  
    @RequestMapping(value="/editemp/{id}"  
    public String edit(@PathVariable int id, Model m){  
        Emp emp = dao.getEmpById(id);  
        m.addAttribute("command", emp);
        return "empeditform";  
    }  
    /* It updates model object. */  
    @RequestMapping(value="/editsave", method = RequestMethod.POST)  
    public String editsave(@ModelAttribute("emp") Emp emp){  
        dao.actualizar(emp);  
        volver "/viewemp";  
    }  
    /* Elimina el registro para el id dado en la URL y redirige a /viewemp */  
    @RequestMapping(value="/borraremple/{id}", método = RequestMethod.GET)  
    public String borrar(@PathVariable int id){  
        dao.borrar(id);  
        volver "/viewemp";  
    }   
}

4、Crear clase DAO

Vamos a crear una clase DAO para acceder a los datos necesarios en la base de datos.

EmpDao.java

paquete com.w3codebox.dao;  
import java.sql.ResultSet;  
import java.sql.SQLException;  
import java.util.List;  
import org.springframework.jdbc.core.BeanPropertyRowMapper;  
import org.springframework.jdbc.core.JdbcTemplate;  
import org.springframework.jdbc.core.RowMapper;  
import com.w3codebox.beans.Emp;  
  
public class EmpDao {  
JdbcTemplate template;  
  
public void establecerPlantilla(JdbcTemplate template) {  
    this.template = template;  
}  
public int guardar(Emp p){  
    String sql="insertar en Emp99(nombre,salario,designación) valores('"+p.getNombre()+","+p.getSalario()+", '"+p.getDesignation()+"')";  
    return template.update(sql);  
}  
public int actualizar(Emp p){  
    String sql="actualizar Emp99 establecer nombre='"+p.getNombre()+", salario="+p.getSalario()+"designación='"+p.getDesignation()+"' where id="+p.getId()+"";  
    return template.update(sql);  
}  
public int delete(int id){  
    String sql="delete from Emp99 where id="+id+"";  
    return template.update(sql);  
}  
public Emp getEmpById(int id){  
    String sql="select * from Emp99 where id=?";  
    return template.queryForObject(sql, new Object[]{id},new BeanPropertyRowMapper<Emp>(Emp.class));  
}  
public List<Emp> getEmployees(){  
    return template.query("select * from Emp99",new RowMapper<Emp>(){  
        public Emp mapRow(ResultSet rs, int row) throws SQLException {  
            Emp e=new Emp();  
            e.setId(rs.getInt(1));  
            e.setName(rs.getString(2));  
            e.setSalary(rs.getfloat(3));  
            e.setDesignation(rs.getString(4));  
            return e;  
        }  
    });  
}  
}

5ofrecer entradas de controlador en el archivo web.xml

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>SpringMVC</display-name>
   <servlet  
    <servlet-name>spring</servlet-name>  
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
    <load-on-startup>1</load-on-startup>    
</servlet>  
<servlet-mapping>  
    <servlet-name>spring</servlet-name>  
    <url-pattern>/</url-pattern>  
</servlet-mapping>  
</web-app>

6、在xml文件中定义Bean

spring-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<context:component-scan base-package="com.w3codebox.controllers"></context:component-scan>  
  
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
<property name="prefix" value="/WEB-INF/jsp/></property>  
<property name="suffix" value=".jsp"></property>  
</bean>  
  
<bean id="ds" class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>  
<property name="url" value="jdbc:mysql:"><//localhost:3306/test"></property>  
<property name="username" value=""></property>  
<property name="password" value=""></property>  
</bean>  
  
<bean id="jt" class="org.springframework.jdbc.core.JdbcTemplate">  
<property name="dataSource" ref="ds"></property>  
</bean>  
  
<bean id="dao" class="com.w3codebox.dao.EmpDao">  
<property name="template" ref="jt"></property>  
</bean>     
</beans>

7、crear las páginas solicitadas

index.jsp

<a href="empform">Agregar Empleado</a>
<a href="viewemp">Ver Empleados</a>

8、crear otros componentes de vista

empform.jsp

<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>  
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>  
        <h1>Agregar nuevo Empleado</h1>
       <form:form method="post" action="save">  
        <table >  
         <tr>  
          Nombre : </td> 
          <td><form:input path="name"  /></td>
         </tr>  
         <tr>  
          Salario :</td>  
          <td><form:input path="salary" /></td>
         </tr> 
         <tr>  
          Designación :</td>  
          <td><form:input path="designation" /></td>
         </tr> 
         <tr>  
          td> </td>  
          <td><input type="submit" value="Guardar" /></td>  
         </tr>  
        </table>  
       </form:form>

empeditform.jsp

aquí"/SpringMVCCRUDSimple"es el nombre del proyecto, si utiliza otro nombre de proyecto, cambie este nombre. Para aplicaciones en tiempo real, puede proporcionar la URL completa.

<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>  
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>  
        <h1>Editar Empleado</h1>
       <form:form method="POST" action="/SpringMVCCRUDSimple/editsave">  
        <table >  
        <tr>
        <td></td>  
         <td><form:hidden  path="id" /></td>
         </tr> 
         <tr>  
          Nombre : </td> 
          <td><form:input path="name"  /></td>
         </tr>  
         <tr>  
          Salario :</td>  
          <td><form:input path="salary" /></td>
         </tr> 
         <tr>  
          Designación :</td>  
          <td><form:input path="designation" /></td>
         </tr> 
         
         <tr>  
          td> </td>  
          <td><input type="submit" value="Editar Guardar" /></td>  
         </tr>  
        </table>  
       </form:form>

viewemp.jsp

    <%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>  
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>  
    <h1>Lista de empleados/h1>
    <table border="2" width="70%" cellpadding="2">
    <tr><th>Id</th><th>Nombre</th><th>Sueldo</th><th>Designación</th><th>Editar</th><th>Eliminar</th></tr>
    <c:forEach var="emp" items="${list}"> 
    <tr>
    ${emp.id}</td>
    ${emp.name}</td>
    ${emp.salary}</td>
    ${emp.designation}</td>
    <td><a href="editemp/${emp.id}>Editar</a></td>
    <td><a href="deleteemp/${emp.id}>Eliminar</a></td>
    </tr>
    </c:forEach>
    </table>
    <br/>
    <a href="empform">Agregar nuevo empleado</a>

Salida:


Haga clic Agregar empleadoverá la siguiente tabla.


Complete el formulario y luego Haga clic en guardarpara agregar el elemento a la base de datos.


Ahora, haga clic EditarPara realizar algunos cambios en los datos proporcionados.


Ahora, haga clic Editar y guardarpara agregar el elemento modificado a la base de datos.


Ahora, haga clic EliminarEliminar el elemento de la base de datos.