English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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表。它具有
、将依赖项添加到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>
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; } }
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"; } }
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; } }); } }
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>
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>
index.jsp
<a href="empform">Agregar Empleado</a> <a href="viewemp">Ver Empleados</a>
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.