English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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
Eine Tabelle erstellen99Hier verwenden wir das emp in der MySQL-Datenbank4Tabelle. Es hat
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>
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; } }
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"; } }
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; } }); } }
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/></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>
index.jsp
<a href="empform">Mitarbeiter hinzufügen</a> <a href="viewemp">Mitarbeiter anzeigen</a>
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.