Heim >Java >javaLernprogramm >Wie SpringBoot Mybatis und Thymleft integriert, um Funktionen zum Hinzufügen, Löschen, Ändern und Überprüfen zu implementieren

Wie SpringBoot Mybatis und Thymleft integriert, um Funktionen zum Hinzufügen, Löschen, Ändern und Überprüfen zu implementieren

王林
王林nach vorne
2023-05-11 16:19:061569Durchsuche

Zuerst erstellen wir das Projekt. Hinweis: Beim Erstellen des SpringBoot-Projekts müssen Sie mit dem Internet verbunden sein, sonst wird ein Fehler gemeldet.

Wie SpringBoot Mybatis und Thymleft integriert, um Funktionen zum Hinzufügen, Löschen, Ändern und Überprüfen zu implementieren

Wie SpringBoot Mybatis und Thymleft integriert, um Funktionen zum Hinzufügen, Löschen, Ändern und Überprüfen zu implementieren

Nachdem das Projekt erstellt wurde, kompilieren wir zunächst die application.yml

Wie SpringBoot Mybatis und Thymleft integriert, um Funktionen zum Hinzufügen, Löschen, Ändern und Überprüfen zu implementieren

#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 toStringWie SpringBoot Mybatis und Thymleft integriert, um Funktionen zum Hinzufügen, Löschen, Ändern und Überprüfen zu implementieren

Dann der Mapper reduziert wird Layer

package 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="@{&#39;/findById/&#39;+${list.pid}}" rel="external nofollow" >修改</a>
                    <a th:href="@{&#39;/delete/&#39;+${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ändert

Das 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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen