SpringBoot之增删改查

前期准备:

SpringBoot+Thymeleaf+MyBastis+MySQL

目录结构如下:
在这里插入图片描述

一、基本配置

①pom.xml配置,使用到的依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.tx</groupId>
    <artifactId>zhongxun</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>test</name>
    <description>Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.0.1</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- servlet依赖. -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>
        <!-- tomcat的支持.-->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
        </dependency>
        <!-- pageHelper  用于分页 -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>4.1.6</version>
        </dependency>
        <!--引入JQuery库-->
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>jquery</artifactId>
            <version>3.4.1</version>
        </dependency>

        <!--Jpa依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

②application.properties文件配置

server.port=8081

#thymeleaf 配置
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.servlet.content-type=text/html
#缓存设置为false, 这样修改之后马上生效,便于调试
spring.thymeleaf.cache=false

#数据库配置
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/studentwelcome?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
# 非Mysql8.0请改为com.mysql.jdbc.Driver
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

mybatis.mapper-locations=classpath:mapper/*.xml

二、实现代码:

①实体类
pojo包下Users.java:

package com.example.demo.pojo;

public class Users {
    private int id;
    private String mobName;
    private String userName;
    private String nickname;
    private String phone;
    private byte register;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getMobName() {
        return mobName;
    }

    public void setMobName(String mobName) {
        this.mobName = mobName;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getNickname() {
        return nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public byte getRegister() {
        return register;
    }

    public void setRegister(byte register) {
        this.register = register;
    }

    @Override
    public String toString() {
        return "Users{" +
                "id=" + id +
                ", mobName='" + mobName + '\'' +
                ", userName='" + userName + '\'' +
                ", nickname='" + nickname + '\'' +
                ", phone='" + phone + '\'' +
                ", register=" + register +
                '}';
    }
}

②映射mapper
在mapper包下,UsersMapper:

package com.example.demo.mapper;

import com.example.demo.pojo.Users;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface UsersMapper {

    //查询,只要含有要查询的字符,就获取该字段。
    @Select("select * from users where CONCAT(mobName,userName,nickname,phone) " +
            "like CONCAT('%',#{name},'%')")
    public List<Users> getUsersList(String name);

    //插入新记录,(未设置id,MYSQl已设置id自动+1)
    @Insert("insert into users (mobName,userName,nickname,phone,register) " +
            "values (#{mobName},#{userName},#{nickname},#{phone},#{register})")
    public int add(Users users);

    //删除记录
    @Delete(" delete from users where id= #{id} ")
    public void del(int id);

    //选择记录
    @Select("select * from users where id= #{id} ")
    public Users getUser(int id);

    //更新记录
    @Update("update users set " +
            "mobName = #{mobName}," +
            "userName = #{userName}," +
            "nickname = #{nickname}," +
            "phone = #{phone}," +
            "register = #{register} " +
            "where id=#{id} ")
    public int update(Users users);

}

③控制器
controller包下UsersController

package com.example.demo.controller;

import com.example.demo.mapper.UsersMapper;
import com.example.demo.pojo.Users;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import javax.annotation.Resource;
import java.util.List;

@Controller
public class UsersController {
    @Resource
    private UsersMapper usersMapper;

    //添加页面
    @RequestMapping("add")
    public String add() {
        return "add";
    }

    //查找(用于查询)
    @RequestMapping("getUser")
    public String getUser(int id, Model model) throws Exception {
        Users Users = usersMapper.getUser(id);//把查到的记录添加进去
        model.addAttribute("Users", Users);
        return "getUser";
    }

    //添加
    @RequestMapping("addUser")
    public String listUser(Users users, BindingResult bindingResult) throws Exception {
        boolean flag = usersMapper.add(users) > 0;
        return "redirect:listUser";
    }

    //删除
    @RequestMapping("deleteUser")
    public String deleteUser(Users users) throws Exception {
        usersMapper.del(users.getId());
        return "redirect:listUser";
    }

    //修改
    @RequestMapping("updateUser")
    public String updateUser(Users Users) throws Exception {
        boolean flag = usersMapper.update(Users) > 0;
        return "redirect:listUser";
    }

    //查找(用于修改)
    @RequestMapping("findUser")
    public String findUser(int id, Model model) throws Exception {
        Users Users = usersMapper.getUser(id);
        model.addAttribute("Users", Users);
        return "modify";
    }

    //遍历,分页
    @RequestMapping({"/","listUser"})
    public String listUser(@RequestParam(value = "name",defaultValue = "") String name,
                           Model model, @RequestParam(value = "start", defaultValue = "1") int start,
                           @RequestParam(value = "size", defaultValue = "5") int size) throws Exception {
        PageHelper.startPage(start, size, "id asc");
        List<Users> userList = usersMapper.getUsersList(name);
        PageInfo<Users> page = new PageInfo<>(userList);
        model.addAttribute("pages", page);
        model.addAttribute("name", name);
        return "listUser";
    }
}

④分页
tools包下PageHelperConfig:

package com.example.demo.tools;

import com.github.pagehelper.PageHelper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Properties;

@Configuration
public class PageHelperConfig {
    @Bean
    public PageHelper pageHelper() {
        PageHelper pageHelper = new PageHelper();
        Properties properties = new Properties();
        properties.setProperty("offsetAsPageNum", "true");
        properties.setProperty("rowBoundsWithCount", "true");
        properties.setProperty("reasonable", "true");
        pageHelper.setProperties(properties);
        return pageHelper;
    }
}

三、写完了后端后,实现前端

由于代码过多,可下载查看:
在这里插入图片描述

参考博客:
SpringBoot实现简单的增删改查以及条件分页
从零开始学SpringBoot-增删改查实现

发布了53 篇原创文章 · 获赞 18 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/YUEXILIULI/article/details/103109551