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

Table. Elle a

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

JdbcTemplate

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


Table. Elle a

1Un champ: ID, nom, salaire et nom.

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>

2Créer une classe de bean

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

3、créer la classe contrôleur

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

4、créer une classe DAO

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

5、dans le fichier web.xml, fournir l'entrée du contrôleur

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、créer les pages demandées

index.jsp

<a href="empform">Ajouter Employé</a>
<a href="viewemp">Voir Employés</a>

8、créer d'autres composants de vue

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.