springboot+vue+mybtais implements adding, deleting, modifying and checking pages (a back-end page), with paging operations. Attach the database file, separate small projects from the front and back ends

1. Originally, the database framework of this small project used jpa and replaced it with mybtais

If you need the source code, you can leave an email in the comment area
to see the effect picture first
insert image description here

Backend project structure

insert image description here

database

Create a new springboot project, which should be included, and the corresponding packages will be built in turn.

build database

/*
 Navicat MySQL Data Transfer

 Source Server         : homework
 Source Server Type    : MySQL
 Source Server Version : 80023
 Source Host           : localhost:3306
 Source Schema         : springboot

 Target Server Type    : MySQL
 Target Server Version : 80023
 File Encoding         : 65001

 Date: 12/12/2021 16:06:35
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for flowd
-- ----------------------------
DROP TABLE IF EXISTS `flowd`;
CREATE TABLE `flowd`  (
  `id` int(0) NOT NULL AUTO_INCREMENT,
  `uptime` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `ChsName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `EnName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `Version` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `Description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 31 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of flowd
-- ----------------------------
INSERT INTO `flowd` VALUES (13, '1', '44444', 'ss', 'sss', '55', '5555');
INSERT INTO `flowd` VALUES (17, 'sadas', '阿斯顿', '导师aads', '阿斯顿', '阿斯顿', '的');
INSERT INTO `flowd` VALUES (22, '', '45456456', 'asd', 'asd', 'ads', 'asdasd');
INSERT INTO `flowd` VALUES (23, '', 'asd', 'asdas', 'asd', 'asd', 'asd');
INSERT INTO `flowd` VALUES (24, '', '566', '455', '456', '456', '456456');
INSERT INTO `flowd` VALUES (26, '', '12', '123', '123', '123', '123');
INSERT INTO `flowd` VALUES (27, '', '12', '123', '123', '123', '123');
INSERT INTO `flowd` VALUES (28, '', '12', '123', '123', '123', '123');
INSERT INTO `flowd` VALUES (29, '', '11111111111111111111111111111111111111111', '312323', '123123', '45555', '123');
INSERT INTO `flowd` VALUES (31, '', '3512', '12321', '453645', '123123', '123123');

SET FOREIGN_KEY_CHECKS = 1;

Start the backend project, first import maven dependencies

 <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <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>
    <!--  mybatis启动器-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.0</version>
        </dependency>
         <!--数据库连接器-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
<!--        lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
<!--        分页查询插件,mybatis用的-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.10</version>
        </dependency>
        
        <dependency>
            <groupId>net.sourceforge.nekohtml</groupId>
            <artifactId>nekohtml</artifactId>
            <version>1.9.22</version>
        </dependency>
<!--  数据源-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.22</version>
        </dependency>
        
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper-spring-boot-starter -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.4.1</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

yml configuration file
application.yml

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/springboot?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true
    username: root
    password: 123456
    type: com.alibaba.druid.pool.DruidDataSource
  thymeleaf:
    cache: false #关闭缓存
    mode: HTML5 #设置模板类型
    encoding: utf-8  #设置编码
    suffix: .html
pagehelper: #pagehelper分页插件配置
  helperDialect: mysql
  reasonable: true
  supportMethodsArguments: true
  params: count=countSqll

  #指定myBatis的核心配置文件与Mapper映射文件
  # 注意:对应实体类的路径

mybatis:
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.yang.dao
server:
  port: 8282
-Ddruid:
  mysql:
    usePingMethod=false:

Note, replace it with your own database name and password, port number I wrote 8282
dao layer
entity class
Flow

package com.yang.dao;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Flow {
    
    
    private int id;
    private String uptime;
    private String type;
    private String ChsName;
    private String EnName;
    private String Version;
    private String Description;
}

Interface FlowMapper

package com.yang.dao;

import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author yangxuan
 */
@Mapper
@Repository
public interface FlowMapper {
    
    
    public int addFlow(Flow flow);//添加

    public int updateFlow(Flow flow);//修改

    public int deleteFlow(int id);//删除

    public List<Flow> findAll();//查询全部

    public Flow findOneByid(int id);//通过id查找

    public List<Flow> Pagefindall();//分页查询方法

}

service layer
Flowservice interface

package com.yang.service;

import com.github.pagehelper.PageInfo;
import com.yang.dao.Flow;

import java.util.List;
@SuppressWarnings(value = "all")
public interface FlowService {
    
    
    //查询全部
    List<Flow> findAll();
    //	添加数据
    int addFlow(Flow flow);
    //	删除数据
    Integer deleteFlow(int id);
    //	修改需要先查询出来对象数据,显示然后进行数据提交,依据id唯一进行修改
    int updateFlow(Flow flow);
    //	通过id查询对象
    public Flow findOneByid(int id);
//分页方法
    public PageInfo<Flow> findByPageService(int pageCode, int pageSize);


}

FlowserviceImpl

package com.yang.service;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.yang.dao.Flow;
import com.yang.dao.FlowMapper;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
@Service
public class FlowServiceImpl implements FlowService{
    
    
    @Resource
    private FlowMapper flowMapper;
    @Override
    public List<Flow> findAll() {
    
    
        return flowMapper.findAll();
    }

    @Override
    public int addFlow(Flow flow) {
    
    
        return flowMapper.addFlow(flow);
    }

    @Override
    public Integer deleteFlow(int id) {
    
    
        return flowMapper.deleteFlow(id);
    }

    @Override
    public int updateFlow(Flow flow) {
    
    
        return flowMapper.updateFlow(flow);
    }

    @Override
    public Flow findOneByid(int id) {
    
    
        return flowMapper.findOneByid(id);
    }

    @Override
    public PageInfo<Flow> findByPageService(int pageCode, int pageSize) {
    
    
        //使用Mybatis分页插件
        PageHelper.startPage(pageCode,pageSize);
       //调用分页查询方法,其实就是查询所有数据,mybatis自动帮我们进行分页计算
        List<Flow> classInfos = flowMapper.Pagefindall();
        return new PageInfo<>(classInfos);
    }
    //    }


}

Place the sql file in the mapper layer under the resource

<?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">
<mapper namespace="com.yang.dao.FlowMapper">
<!--    //namespace对应的是接口-->
    <select id="findAll" resultType="com.yang.dao.Flow">
    select * from flowd
  </select>
    <select id="Pagefindall" resultType="com.yang.dao.Flow">
    select * from flowd
  </select>
    <select id="findOneByid" resultType="com.yang.dao.Flow" parameterType="int">
  	select * from flowd where id=#{id}
  </select>
    <!-- insert update delete的返回值resultType默认为int类型 -->
    <insert id="addFlow" parameterType="com.yang.dao.Flow" >
  	insert into flowd() value(#{id},#{uptime},#{type},#{ChsName},#{EnName},#{Version},#{Description})
  </insert>
    <update id="updateFlow" parameterType="com.yang.dao.Flow">
  	update flowd set uptime=#{uptime},type=#{type},ChsName=#{ChsName},EnName=#{EnName},Version=#{Version},Description=#{Description} where id=#{id}
  </update>

    <delete id="deleteFlow" parameterType="com.yang.dao.Flow">
  	delete from flowd where id=#{id}
  </delete>
</mapper>

controller layer

FlowController

package com.yang.controller;
import com.github.pagehelper.PageInfo;
import com.yang.dao.Flow;
import com.yang.service.FlowService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@Controller
@RequestMapping("/flow")
public class FlowController {
    
    
    @Autowired
    private FlowService flowService;

    @GetMapping("/findAll")
    @ResponseBody
    public List<Flow> list() {
    
    
        return flowService.findAll();
    }


//分页
@GetMapping("/pagehelper/{pageCode}/{pageSize}")
@ResponseBody
    public PageInfo<Flow> findByPage(@PathVariable( "pageCode") int pageCode, @PathVariable( "pageSize") int pageSize) {
    
    
    System.out.println(pageCode+"...."+pageSize);
    PageInfo<Flow> pageInfo = flowService.findByPageService(pageCode, pageSize);
    return pageInfo;
}


    //添加
    @PostMapping("/add")
    @ResponseBody
    public String addFlow(@RequestBody Flow flow) {
    
    
        int result = flowService.addFlow(flow);
        if (result > 0) {
    
    
            return "success";
        } else {
    
    
            return "error";
        }
    }



    通过id获取所有数据
    @GetMapping("/findById/{id}")
    @ResponseBody
    public Flow findById(@PathVariable("id") Integer id){
    
    
        return flowService.findOneByid(id);
    }



//    修改
    @PutMapping("/update")
    @ResponseBody
    public String update(@RequestBody Flow flow) {
    
    
        int result = flowService.updateFlow(flow);
        if (result > 0) {
    
    
            return "success";
        } else {
    
    
            return "error";
        }
    }



    @GetMapping("/delEmp/{id}")
    @ResponseBody
    public String delEmp(@PathVariable("id") Integer id){
    
    
        Integer result = flowService.deleteFlow(id);
        if (result > 0) {
    
    
            return "success";
        } else {
    
    
            return "error";
        }
    }

}

KuaYuconfig under config configuration solves the cross-domain problem of interacting with the front end

package com.yang.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class KuaYuconfig {
    
    
    @Bean
    public WebMvcConfigurer corsConfigurer() {
    
    
        return new WebMvcConfigurer() {
    
    
            @Override
            public void addCorsMappings(CorsRegistry registry) {
    
    
                registry.addMapping("/**")
                        .allowCredentials(false)
                        .allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE")
                        .allowedOrigins("*");
            }
        };
    }
}

Guess you like

Origin blog.csdn.net/unique_sir/article/details/121888856
Recommended