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

Ein Feld: ID, Name, Gehalt und Name.

CRUD (Erstellen, Lesen, Aktualisieren und Löschen) - Anwendungen sind die wichtigsten Anwendungen zur Erstellung jedes Projekts. Sie bieten Ideen für die Entwicklung großer Projekte. In SpringMVC können wir eine einfache CRUD-Anwendung entwickeln.

在这里,我们使用 Hier verwenden wir JdbcTemplate

Datenbankinteraktion durchführen.

Eine Tabelle erstellen99Hier verwenden wir das emp in der MySQL-Datenbank4Tabelle. Es hat


Ein Feld: ID, Name, Gehalt und Name.

1Spring MVC CRUD-Beispiel

Pom.xml-Datei hinzufügen

 .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>

2Bean-Klasse erstellen

Hier enthält die Bean-Klasse Variablen, die den in der Datenbank vorhandenen Feldern entsprechen (sowie Setter- und Getter-Methode).

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、Erstellen Sie eine Controller-Klasse

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;//wird DAO aus XML-Datei injizieren  
      
    /*Es zeigt ein Formular an, um Daten einzugeben, hier ist "command" ein reserviertes Anforderungsattribut 
     *Dies wird verwendet, um Objektdaten in ein Formular anzuzeigen 
     */  
    @RequestMapping("/empform")  
    public String showform(Model m){  
        m.addAttribute("command", new Emp());
        return "empform"; 
    }  
    /*Es speichert das Objekt in die Datenbank. Das @ModelAttribute gibt die Anfragedaten ein 
     *  in das Modellobjekt. Sie müssen den RequestMethod.POST-Methodenaufruf angeben  
     *  da die Standardanfrage GET ist*/  
    @RequestMapping(value="/save", method = RequestMethod.POST)  
    public String save(@ModelAttribute("emp") Emp emp){  
        dao.save(emp);  
        return "redirect:/viewemp";//wird umgeleitet zu viewemp RequestMapping  
    }  
    /* Es stellt eine Liste von Mitarbeitern im Modellobjekt bereit */  
    @RequestMapping("/viewemp")  
    public String viewemp(Model m){  
        List<Emp> list = dao.getEmployees();  
        m.addAttribute("list", list);
        return "viewemp";  
    }  
    /* Es zeigt die Daten des Objekts in das Formular für die angegebene ID an.  
     * Das @PathVariable gibt die URL-Daten in die Variable ein.*/  
    @RequestMapping(value="/editemp/{id}"  
    public String edit(@PathVariable int id, Model m){  
        Emp emp = dao.getEmpById(id);  
        m.addAttribute("command", emp);
        return "empeditform";  
    }  
    /* Es aktualisiert das Modellobjekt. */  
    @RequestMapping(value="/editsave", method = RequestMethod.POST)  
    public String editsave(@ModelAttribute("emp") Emp emp){  
        dao.update(emp);  
        return "redirect:/viewemp";  
    }  
    /* Es löscht das Record für die angegebene ID in der URL und leitet weiter zu /viewemp */  
    @RequestMapping(value="/deleteemp/{id}", method = RequestMethod.GET)  
    public String delete(@PathVariable int id){  
        dao.delete(id);  
        return "redirect:/viewemp";  
    }   
}

4、Erstellen Sie eine DAO-Klasse

Lassen Sie uns eine DAO-Klasse erstellen, um auf die erforderlichen Daten in der Datenbank zuzugreifen.

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、在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/></eigenschaft>  
<property name="suffix" value=".jsp"></eigenschaft>  
</bean>  
  
<bean id="ds" class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
<property name="driverClassName" value="com.mysql.jdbc.Driver"></eigenschaft>  
<property name="url" value="jdbc:mysql:"><//localhost:3306/test"></eigenschaft>  
<property name="username" value=""></eigenschaft>  
<property name="password" value=""></eigenschaft>  
</bean>  
  
<bean id="jt" class="org.springframework.jdbc.core.JdbcTemplate">  
<eigenschaft name="dataSource" ref="ds"></eigenschaft>  
</bean>  
  
<bean id="dao" class="com.w3codebox.dao.EmpDao">  
<eigenschaft name="template" ref="jt"></eigenschaft>  
</bean>     
</beans>

7、Seiten für die Anfrage erstellen

index.jsp

<a href="empform">Mitarbeiter hinzufügen</a>
<a href="viewemp">Mitarbeiter anzeigen</a>

8、andere Ansichtskomponenten erstellen

empform.jsp

<%@ taglib uri="http://www.springframework.org/tags/form" vorgabe="form"%>  
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" vorgabe="c"%>  
        <h1>Neuen Mitarbeiter hinzufügen</h1>
       <form:form method="post" action="save">  
        <table>  
         <tr>  
          td>Name: </td> 
          <td><form:input path="name"  /></td>
         </tr>  
         <tr>  
          td>Lohn: </td>  
          <td><form:input path="salary" /></td>
         </tr> 
         <tr>  
          td>Betätigung: </td>  
          <td><form:input path="designation" /></td>
         </tr> 
         <tr>  
          td> </td>  
          <td><input type="submit" value="Speichern" /></td>  
         </tr>  
        </table>  
       </form:form>

empeditform.jsp

hier/SpringMVCCRUDSimple" ist der Projektnamen. Wenn Sie einen anderen Projektnamen verwenden, ändern Sie diesen Namen. Für Echtzeit-Anwendungen können Sie die vollständige URL bereitstellen.

<%@ taglib uri="http://www.springframework.org/tags/form" vorgabe="form"%>  
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" vorgabe="c"%>  
        <h1>Bearbeiten Mitarbeiter</h1>
       <form:form method="POST" action="/SpringMVCCRUDSimple/editsave">  
        <table>  
        <tr>
        td> </td>  
         <td><form:hidden path="id" /></td>
         </tr> 
         <tr>  
          td>Name: </td> 
          <td><form:input path="name"  /></td>
         </tr>  
         <tr>  
          td>Lohn: </td>  
          <td><form:input path="salary" /></td>
         </tr> 
         <tr>  
          td>Betätigung: </td>  
          <td><form:input path="designation" /></td>
         </tr> 
         
         <tr>  
          td> </td>  
          <td><input type="submit" value="Bearbeiten Speichern" /></td>  
         </tr>  
        </table>  
       </form:form>

viewemp.jsp

    <%@ taglib uri="http://www.springframework.org/tags/form" vorgabe="form"%>  
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" vorgabe="c"%>  
    <h1>Mitarbeiterliste</h1>
    <table border="2" width="70%" cellpadding="2">
    <tr><th>Id</th><th>Name</th><th>Gehalt</th><th>Bezeichnung</th><th>Bearbeiten</th><th>Löschen</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}>Bearbeiten</a></td>
    <td><a href="deleteemp/${emp.id}>Löschen</a></td>
    </tr>
    </c:forEach>
    </table>
    <br/>
    <a href="empform">Neuen Mitarbeiter hinzufügen</a>

Ausgabe:


Klicken Mitarbeiter hinzufügenSie sehen dann die folgende Tabelle.


Füllen Sie das Formular aus und dann Klicken Sie auf Speichernum den Eintrag in die Datenbank hinzuzufügen.


Jetzt, klicken BearbeitenDaten ändern, um einige Änderungen am Inhalt vorzunehmen.


Jetzt, klicken Bearbeiten und Speichernum den geänderten Eintrag in die Datenbank hinzuzufügen.


Jetzt, klicken LöschenEintrag aus der Datenbank löschen.