新建项目
在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');