spring boot + mybatis-plus + mysql设计增删改查接口

新建项目
在这里插入图片描述
在这里插入图片描述
在pom.xml添加依赖

<dependencies>
        <!--  web  -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--  mysql  -->
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
        </dependency>
        <!--  mybatis-plus  -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.2</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.5.2</version>
        </dependency>
        <!--  freemarker  -->
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
        </dependency>
        <!--  lombok  -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--  fastjson  -->
        <dependency>
            <groupId>com.alibaba.fastjson2</groupId>
            <artifactId>fastjson2</artifactId>
            <version>2.0.7</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

在test文件创建一个代码生成文件
在这里插入图片描述

package com.demo;

import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

import java.util.Collections;

public class CodeGenerator {
    public static void main(String[] args) {
    //需改修改数据库连接的用户名 密码 数据库名
        String url = "jdbc:mysql:///students";
        String username = "root";
        String password = "0519";
        // sys 可以改为你自己想要的名字
        String moduleName = "sys";
        // 复制自己的代码目录
        String mapperLocation = "D:\\Users\\lhl\\Desktop\\demo\\src\\main\\resources\\mapper\\" + moduleName;
        //自己数据库的首字段名
        String tables = "x_user,x_student";
        FastAutoGenerator.create(url, username, password)
                .globalConfig(builder -> {
                    builder.author("hailang") // 设置作者
                            //.enableSwagger() // 开启 swagger 模式
                            //.fileOverride() // 覆盖已生成文件
                            .outputDir("D:\\Users\\lhl\\Desktop\\demo\\src\\main\\java"); // 指定输出目录
                })
                .packageConfig(builder -> {
                    builder.parent("com.demo") // 设置父包名
                            .moduleName(moduleName) // 设置父包模块名
                            .pathInfo(Collections.singletonMap(OutputFile.xml, mapperLocation)); // 设置mapperXml生成路径
                })
                .strategyConfig(builder -> {
                    builder.addInclude(tables) // 设置需要生成的表名
                            .addTablePrefix("x_"); // 设置过滤表前缀
                })
                .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
                .execute();
    }
}

运行CodeGenerator

在这里插入图片描述

package com.demo.sys.controller;

import com.demo.sys.entity.Student;
import com.demo.sys.mapper.StudentMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.stereotype.Controller;

/**
 * <p>
 * 前端控制器
 * </p>
 *
 * @author hailang
 * @since 2023-04-11
 */

@RestController
@RequestMapping("/student")
public class StudentController {

    //返回hello
    @GetMapping("/hello")
    public String hello() {
        return "hello";
    }

    //查询所有学生信息接口
    @Autowired
    private StudentMapper studentMapper;

    @GetMapping("/findAll")
    public Object findAll() {
        return studentMapper.selectList(null);
    }

    //根据id查询学生信息接口
    @GetMapping("/findById/{id}")
    public Object findById(@PathVariable("id") Integer id) {
        return studentMapper.selectById(id);
    }


    //添加学生信息接口
    @GetMapping("/add")
    public Object add(Student student) {
        studentMapper.insert(student);
        return "添加成功";
    }

    //通过id修改学生学生的名字,性别,年龄,班级接口
    @GetMapping("/update/{id}")
    public Object update(@PathVariable("id") Integer id, Student student) {
        student.setId(id);
        studentMapper.updateById(student);
        return "修改成功";
    }
    //通过id删除学生信息接口
    @GetMapping("/deleteById/{id}")
    public Object deleteById(@PathVariable("id") Integer id) {
        studentMapper.deleteById(id);
        return "删除成功";
    }


}

package com.demo.sys.mapper;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.demo.sys.entity.Student;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * Mapper 接口
 * </p>
 *
 * @author hailang
 * @since 2023-04-11
 */
public interface StudentMapper extends BaseMapper<Student> {
    Integer saveStudent(Student student);

}

跨域

package com.demo.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.CorsConfigurationSource;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

@Configuration
public class MyCorsConfig {

    @Bean
    public CorsFilter corsFilter(){
        CorsConfiguration configuration = new CorsConfiguration();
        // 接口改为自己的
        configuration.addAllowedOrigin("http://localhost:63342");
        configuration.setAllowCredentials(true);
        configuration.addAllowedMethod("*");
        configuration.addAllowedHeader("*");

        UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();
        urlBasedCorsConfigurationSource.registerCorsConfiguration("/**",configuration);

        return  new CorsFilter(urlBasedCorsConfigurationSource);
    }
}

修改文件改为yml
在这里插入图片描述
主文件添加注解
// “com.demo..mapper"改成自己配置的目录
// 添加@MapperScan("com.demo.
.mapper”)注解,扫描mapper接口
在这里插入图片描述
数据库代码

CREATE TABLE `x_student` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL,
  `age` int(11) NOT NULL,
  `sex` varchar(10) NOT NULL,
  `class1` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;



CREATE TABLE `x_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(50) NOT NULL,
  `password` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;



INSERT INTO `x_student` (`name`, `age`, `sex`, `class1`) VALUES
('张三', 18, '男', '高一1班'),
('李四', 19, '男', '高一2班'),
('王五', 17, '女', '高一3班'),
('赵六', 18, '男', '高一1班'),
('钱七', 19, '女', '高一2班'),
('孙八', 17, '男', '高一3班'),
('周九', 18, '女', '高一1班'),
('吴十', 19, '男', '高一2班'),
('郑十一', 17, '女', '高一3班'),
('王十二', 18, '男', '高一1班'),
('张十三', 19, '女', '高一2班'),
('李十四', 17, '男', '高一3班'),
('赵十五', 18, '女', '高一1班'),
('钱十六', 19, '男', '高一2班'),
('孙十七', 17, '女', '高一3班'),
('周十八', 18, '男', '高一1班'),
('吴十九', 19, '女', '高一2班'),
('郑二十', 17, '男', '高一3班'),
('刘一', 18, '女', '高一1班'),
('陈二', 19, '男', '高一2班');

INSERT INTO `x_user` (`username`, `password`) VALUES
('admin', 'admin'),
('user1', '123456'),
('user2', '123456'),
('user3', '123456'),
('user4', '123456'),
('user5', '123456'),
('user6', '123456'),
('user7', '123456'),
('user8', '123456'),
('user9', '123456'),
('user10', '123456'),
('user11', '123456'),
('user12', '123456'),
('user13', '123456'),
('user14', '123456'),
('user15', '123456'),
('user16', '123456'),
('user17', '123456'),
('user18', '123456'),
('user19', '123456');
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lionliu0519

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值