Heim >Java >javaLernprogramm >Wie SpringBoot Mybatis und Thymleft integriert, um Funktionen zum Hinzufügen, Löschen, Ändern und Überprüfen zu implementieren
Zuerst erstellen wir das Projekt. Hinweis: Beim Erstellen des SpringBoot-Projekts müssen Sie mit dem Internet verbunden sein, sonst wird ein Fehler gemeldet.
Nachdem das Projekt erstellt wurde, kompilieren wir zunächst die application.yml
#Geben Sie die Portnummer an
Server:
Port: 8888
#Konfigurieren Sie die MySQL-Datenquelle
spring:
Datenquelle:
Treiberklassenname: com.mysql.cj.jdbc.Driver
URL: jdbc :mysql://localhost:3306/nba?serverTimezone= Asien/Shanghai
Benutzername: root
Passwort: root
#Template-Engine konfigurieren thymeleaf
thymeleaf:
Modus: HTML5
Cache: false
Suffix: .html
Präfix: Klassenpfad :/templates/
mybatis:
mapper-locations: class path :/mapper/*.xml
type-aliases-package: com.bdqn.springboot #Geben Sie den Paketnamen ein
Hinweis: Nach: muss ein Leerzeichen stehen: . Wenn kein Platz vorhanden ist, wird ein Fehler gemeldet. Als nächstes erstellen wir das Projekt und erstellen die folgenden Pakete entsprechend Ihren tatsächlichen Anforderungen Dao-Layer-Schnittstellen. Pojo: Wird zum Speichern der Service-Layer-Schnittstelle und der Service-Layer-Implementierungsklasse verwendet.
Web: Wird zum Speichern der Controller-Steuerungsschicht verwendet. Als nächstes beginnen wir mit dem Schreiben von Code Klasse. Heute führen wir ein einfaches Hinzufügen, Löschen und Ändern von zwei Tabellen durch. Check
package com.baqn.springboot.pojo; import lombok.Data; @Data public class Clubs { private int cid; private String cname; private String city; }
package com.baqn.springboot.pojo; import lombok.Data; @Data public class Players { private int pid; private String pname; private String birthday; private int height; private int weight; private String position; private int cid; private String cname; private String city; }
Mit der @Data-Annotation kann die Codemenge in der Entitätsklasse effektiv reduziert werden, wodurch das Schreiben von get/set und toString
Dann der Mapper reduziert wird Layerpackage com.baqn.springboot.mapper; import com.baqn.springboot.pojo.Players; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; import java.util.List; @Mapper @Repository public interface PlayersMapper { /** * 查询所有 * @return */ List<Players> findAll(); /** * 根据ID查询 * @return */ Players findById(Integer id); /** * 新增 * @param players * @return */ Integer add(Players players); /** * 删除 * @param pid * @return */ Integer delete(Integer pid); /** * 修改 * @param players * @return */ Integer update(Players players); }Nach der Verwendung von @mapper ist es nicht erforderlich, das Scannen in der Spring-Konfiguration einzurichten. Die Adresse entspricht der relevanten Mapper-Klasse über das Namespace-Attribut in mapper.xml. Spring generiert die Bean dynamisch und injiziert sie in Servicelmpl. Dann die Serviceschicht
package com.baqn.springboot.service; import com.baqn.springboot.pojo.Players; import org.apache.ibatis.annotations.Param; import java.util.List; public interface PlayersService { List<Players> findAll(); Players findById(Integer pid); Integer add(Players players); Integer delete(Integer pid); Integer update(Players players); }
package com.baqn.springboot.service; import com.baqn.springboot.mapper.PlayersMapper; import com.baqn.springboot.pojo.Players; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class PlayersServiceImpl implements PlayersService{ @Autowired private PlayersMapper mapper; @Override public List<Players> findAll() { return mapper.findAll(); } @Override public Players findById(Integer pid) { return mapper.findById(pid); } @Override public Integer add(Players players) { return mapper.add(players); } @Override public Integer delete(Integer pid) { return mapper.delete(pid); } @Override public Integer update(Players players) { return mapper.update(players); } }Schließlich die Controller-Kontrollklasse der Webschicht
package com.baqn.springboot.web; import com.baqn.springboot.pojo.Players; import com.baqn.springboot.service.PlayersServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import java.util.List; @Controller public class PlayersController { @Autowired private PlayersServiceImpl service; @RequestMapping("/findAll") public String findAll(Model model) { List<Players> allList = service.findAll(); model.addAttribute("allList",allList); return "index"; } @RequestMapping("/findById/{pid}") public String findById(Model model,@PathVariable("pid") Integer pid) { Players list = service.findById(pid); //System.out.println("---------------"+list.toString()); model.addAttribute("list",list); return "update.html"; } @RequestMapping("/add") public String add(Model model, Players players){ Integer count = service.add(players); if (count>0){ return "redirect:/findAll"; } return "add"; } @RequestMapping("/delete/{pid}") public String delete(Model model,@PathVariable("pid") Integer pid){ Integer count = service.delete(pid); if (count>0){ return "redirect:/findAll"; } return null; } @RequestMapping("/a1") public String a1(Model model, Players players){ return "add.html"; } @RequestMapping("/update") public String update(Model model,Players plays){ Integer count = service.update(plays); if (count>0){ return "redirect:/findAll"; } return null; } }Hinweis: Die Methode a1 wird nur zum Springen zur Seite verwendet und hat keine andere Wirkung. Wenn Sie eine bessere Sprungmethode haben, können Sie dies tun Hinterlassen Sie mir eine Nachricht. Nachdem die Vorbereitungen abgeschlossen sind, können Sie mit dem Schreiben von SQL-Anweisungen beginnen.mapper.xml kann in die Ressourcen unten oder in die Mapper-Ebene darüber geschrieben werden.Wenn es oben geschrieben ist, müssen Sie schreiben Ein Ressourcenfilter im Pom. Wenn Sie interessiert sind, können Sie zu Baidu gehen update.html
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--namespace=绑定一个对应的Dao/Mapper接口--> <mapper namespace="com.baqn.springboot.mapper.PlayersMapper"> <select id="findAll" resultType="com.baqn.springboot.pojo.Players"> select * from clubs c , players p where c.cid = p.cid </select> <select id="findById" resultType="com.baqn.springboot.pojo.Players"> select * from clubs c , players p where c.cid = p.cid and p.pid=#{pid} </select> <insert id="add" parameterType="com.baqn.springboot.pojo.Players"> INSERT INTO `nba`.`players`(pname, birthday, height, weight, position, cid) VALUES (#{pname}, #{birthday}, #{height}, #{weight}, #{position}, #{cid}); </insert> <delete id="delete" parameterType="int"> delete from players where pid = #{pid} </delete> <update id="update" parameterType="com.baqn.springboot.pojo.Players"> UPDATE `nba`.`players` <set> <if test="pname != null">pname=#{pname},</if> <if test="birthday != null">birthday=#{birthday},</if> <if test="height != null">height=#{height},</if> <if test="weight != null">weight=#{weight},</if> <if test="position != null">position=#{position},</if> <if test="cid != null">cid=#{cid}</if> </set> WHERE `pid` = #{pid}; </update> </mapper>Quellcode für die Datenbankerstellung – Hinweis: Ich verwende eine MySQL-Datenbank
<html> <head> <title>Title</title> </head> <body> <div align="center"> <table border="1"> <h2>美国职业篮球联盟(NBA)球员信息</h2> <a th:href="@{/a1}" rel="external nofollow" >新增</a> <tr> <th>球员编号</th> <th>球员名称</th> <th>出生时间(yyyy-MM-dd)</th> <th>球员身高(cm)</th> <th>球员体重(kg)</th> <th>球员位置</th> <th>所属球队</th> <th>相关操作</th> </tr> <!--/*@thymesVar id="abc" type=""*/--> <tr th:each="list : ${allList}"> <td th:text="${list.pid}"></td> <td th:text="${list.pname}"></td> <td th:text="${list.birthday}"></td> <td th:text="${list.height}">${list.height}</td> <td th:text="${list.weight}"></td> <td th:text="${list.position}"></td> <td th:text="${list.cname}"></td> <td> <a th:href="@{'/findById/'+${list.pid}}" rel="external nofollow" >修改</a> <a th:href="@{'/delete/'+${list.pid}}" rel="external nofollow" >删除</a> </td> </tr> </c:forEach> </table> </div> </body> </html>Zum Schluss zeige ich Ihnen die Seite „Anzeige“Geben Sie in die Adressleiste ein: http://localhost:8888/findAll Zur Abfrage gehen Alle Methoden und springen Sie zur Anzeige zu idnex.html
Klicken Sie auf Hinzufügen, um zur neuen Seite zu springen
Geben Sie Parameter ein
Klicken Sie dann auf Speichern, springen Sie zu idnex.html und zeigen Sie es an Die Daten.Die Front-End-Datenanzeigeoberfläche wurde erfolgreich hinzugefügt
Klicken Sie auf „Ändern“, um die Daten gemäß der findById-Methode zu finden, und springen Sie zur Anzeige zur Seite „update.htnl“. änderte das Team zu Wizards und klickte auf Speichern
Springe zur Seite index.html und die Daten wurden erfolgreich geändertDas obige ist der detaillierte Inhalt vonWie SpringBoot Mybatis und Thymleft integriert, um Funktionen zum Hinzufügen, Löschen, Ändern und Überprüfen zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!