English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Les applications CRUD (création, lecture, mise à jour et suppression) sont les applications les plus importantes pour créer n'importe quel projet. Elle fournit des idées pour le développement de projets de grande envergure. Dans SpringMVC, nous pouvons développer une application CRUD simple.
在这里,我们使用 JdbcTemplate Ici, nous utilisons
effectuer des interactions avec la base de données.99Créer une table4Ici, nous utilisons la base de données MySQL où il existe un emp
Exemple CRUD Spring MVC
java-- .0.//<!/https:/mvnrepository.com/spring-Ajouter les dépendances au fichier pom.xml. --> org.springframework jdbc/<dependency> <groupId>org.springframework-pom.xml/<artifactId>jdbc <version>5.1.1.RELEASE</version> </dependency> java-- .0.//<!/https:/webmvc/webmvc-org.apache.tomcat --> org.springframework tomcat/<dependency> jasper-<groupId>org.apache.tomcat/<artifactId>jdbc <version>9connector12</version> </dependency> java-- .0.//<!/https:/.0/.0-<artifactId>tomcat --> org.springframework alpha/<dependency> jasper-api/<artifactId>jdbc <version>3<artifactId>servlet-api-1</version> </dependency> java-- .0.//<!/https:/.0/jstl --> org.springframework alpha/<dependency> javax.servlet/<artifactId>jdbc <version>1.2</version> </dependency> java-- .0.//<!/https:/<groupId>javax.servlet/<groupId>javax.servlet-<groupId>mysql-<artifactId>jstl --> org.springframework mysql/<dependency> java-<groupId>mysql-<artifactId>mysql/<artifactId>jdbc <version>8connector11</version> </dependency> java-- .0.//<!/https:/mvnrepository.com/spring-artifact --> org.springframework jdbc/<dependency> <groupId>org.springframework-<artifactId>spring/<artifactId>jdbc <version>5.1.1.RELEASE</version> </dependency>
Ici, la classe de bean contient des variables correspondant aux champs existants dans la base de données (ainsi que les méthodes setter et getter).
Emp.java
package 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
package 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;//injèrera le dao à partir du fichier XML /*Il affiche un formulaire pour saisir des données, ici "command" est un attribut de demande réservé *Cela est utilisé pour afficher les données d'objet sous forme de formulaire */ @RequestMapping("/empform") public String showform(Model m){ m.addAttribute("command", new Emp()); return "empform"; } /*Il sauvegarde l'objet dans la base de données. Le @ModelAttribute met les données de la requête * dans l'objet modèle. Vous devez mentionner la méthode RequestMethod.POST * parce que la requête par défaut est GET*/ @RequestMapping(value="/save", method = RequestMethod.POST) public String save(@ModelAttribute("emp") Emp emp){ dao.save(emp); return "redirect:/viewemp";//redirigera vers la requête de mapping viewemp } /* Il fournit la liste des employés dans l'objet modèle */ @RequestMapping("/viewemp") public String viewemp(Model m){ List<Emp> list = dao.getEmployees(); m.addAttribute("list", list); return "viewemp"; } /* Il affiche les données de l'objet dans le formulaire pour l'ID donné. * Le @PathVariable met les données de l'URL dans la variable.*/ @RequestMapping(value="/editemp/{id}" public String edit(@PathVariable int id, Model m){ Emp emp = dao.getEmpById(id); m.addAttribute("command", emp); return "empeditform"; } /* Il met à jour l'objet modèle. */ @RequestMapping(value="/editsave", method = RequestMethod.POST) public String editsave(@ModelAttribute("emp") Emp emp){ dao.update(emp); return "redirect:/viewemp"; } /* Il supprime l'enregistrement pour l'ID donné dans l'URL et redirige vers /viewemp */ @RequestMapping(value="/deleteemp/{id}", method = RequestMethod.GET) public String delete(@PathVariable int id){ dao.delete(id); return "redirect:/viewemp"; } }
Laissez-nous créer une classe DAO pour accéder aux données nécessaires dans la base de données.
EmpDao.java
package 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 setTemplate(JdbcTemplate template) { this.template = template; } public int save(Emp p){ String sql="insert into Emp99(name, salary, designation) values('"+p.getName()+"',"+p.getSalary()+", '"+p.getDesignation()+"')"; return template.update(sql); } public int update(Emp p){ String sql="update Emp99 set name='"+p.getName()+", salary="+p.getSalary()+"designation='"+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">Ajouter Employé</a> <a href="viewemp">Voir Employés</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>Ajouter un nouvel Employé</h1> <form:form method="post" action="save"> <table > <tr> Nom : </td> <td><form:input path="name" /></td> </tr> <tr> Salaire :</td> <td><form:input path="salary" /></td> </tr> <tr> Désignation :</td> <td><form:input path="designation" /></td> </tr> <tr> td> </td> <td><input type="submit" value="Enregistrer" /></td> </tr> </table> </form:form>
empeditform.jsp
ici"/SpringMVCCRUDSimple" est le nom du projet. Si vous utilisez un autre nom de projet, veuillez modifier ce nom. Pour les applications en temps réel, vous pouvez fournir une URL complète.
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <h1>Modifier Employé</h1> <form:form method="POST" action="/SpringMVCCRUDSimple/editsave"> <table > <tr> <td></td> <td><form:hidden path="id" /></td> </tr> <tr> Nom : </td> <td><form:input path="name" /></td> </tr> <tr> Salaire :</td> <td><form:input path="salary" /></td> </tr> <tr> Désignation :</td> <td><form:input path="designation" /></td> </tr> <tr> td> </td> <td><input type="submit" value="Modifier Enregistrer" /></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>Employees List</h1> <table border="2" width="70%" cellpadding="2"> <tr><th>Id</th><th>Name</th><th>Salary</th><th>Designation</th><th>Edit</th><th>Delete</th></tr> <c:forEach var="emp" items="${list}"> <tr> <td>${emp.id}</td> <td>${emp.name}</td> <td>${emp.salary}</td> <td>${emp.designation}</td> <td><a href="editemp/${emp.id}>Edit</a></td> <td><a href="deleteemp/${emp.id}>Delete</a></td> </tr> </c:forEach> </table> <br/> <a href="empform">Add new Employee</a>
Output:
Click Add Employeeyou will see the following table.
Fill in the form and then Click Saveto add the entry to the database.
Now, click EditTo make some changes to the provided content data.
Now, click Edit and Save, to add the modified entry to the database.
Now, click DeleteDelete entry from the database.