springboot+mybaitsplus+vue简单的CURD
环境:
jdk1.8 、maven3.3.6+、MySQL5.7
开发工具:ieda
后端创建
- 创建springboot项目,填写项目名称。
- 添加依赖,这里不添加也可以,后面在pom文件添加也行。
- next——>finish
- 下载依赖完成以后得到这样一个目录,启动项目看看是否成功。
- 如果依赖下载不成功,设置自己阿里云的maven
已经配置的可以忽略此步骤
阿里云配置如下
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*,!jeecg,!jeecg-snapshots,!getui-nexus</mirrorOf>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
仓库位置
<localRepository>D:\Repository\ideaRepository</localRepository>
-
配置数据库,删掉application.properties,新建application.yarm和application-dev.yaml文件
-
配置数据源
application-dev.yaml
#开发环境
spring:
#数据库连接信息
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/zoo
username: root
password: 123456
#端口
# context-path 默认根目录
server:
port: 8089
# servlet:
# context-path: /api
#扫描mapper
mybatis-plus:
mapper-locations: classpath:/mapper/*.xml
application.yarm
spring:
application:
name: user
#启用配置文件
profiles:
active: dev
数据库配置:
- 打开navicat测试连接
- 连接成功创建数据库
点击新建数据库,填写数据库名称和字符集、排序规则。然后保存
8.启动项目
看控制台信息
成功!
开始编写curd代码
- pom文件添加依赖
- 相关依赖如下:
<dependencies>
<!--web组件-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--springboot版本-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.2</version>
</dependency>
<!--热加载-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</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>
<!--测试依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--代码生成器,必须加入freemarker-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.30</version>
</dependency>
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<!--API管理工具
重要特性:
1.代码侵入式注解
2.遵循YAML文档格式
3.非常适合三端(PC、iOS及Android)的API管理,尤其适合前后端完全分离的架构模式。
4.减少没有必要的文档,符合敏捷开发理念
5.功能强大-->
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.5.22</version>
</dependency>
</dependencies>
- 简化开发使用mybatis-plus代码生成器
- 步骤:
1.创建utils包
2.GenerateTool类(生成器代码类)
package com.cjy.mybatis_plus.utils;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import lombok.extern.slf4j.Slf4j;
import java.util.Collections;
/**
* @ClassName GenerateTool
* @Author xieyixu
* @create 2022/5/13 15:48
*/
@Slf4j
public class GenerateTool {
public static void main(String[] args) {
FastAutoGenerator.create("jdbc:mysql://127.0.0.1:3306/zoo", "root", "123456")
.globalConfig(builder -> {
builder.author("xieyixu") // 设置作者
.enableSwagger() // 开启 swagger 模式
.fileOverride() // 覆盖已生成文件
.outputDir("D:\\IDEA\\mybatis_plus\\src\\main\\java"); // 指定输出目录
})
.packageConfig(builder -> {
builder.parent("com.cjy") // 设置父包名
.moduleName("mybatis_plus") // 设置父包模块名
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, "D:\\IDEA\\mybatis_plus\\src\\main\\resources\\mapper")); // 设置mapperXml生成路径
})
.strategyConfig(builder -> {
builder
.addInclude("admin")// 设置需要生成的表名
.addInclude("anima")
.addInclude("breeder")
.addInclude("doctor")
.addInclude("support")
.addTablePrefix("t_", "c_"); // 设置过滤表前缀
})
.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
.execute();
}
}
3.数据库表设计
- SQL脚本
/*
Navicat Premium Data Transfer
Source Server : MySQL
Source Server Type : MySQL
Source Server Version : 50711
Source Host : localhost:3306
Source Schema : zoo
Target Server Type : MySQL
Target Server Version : 50711
File Encoding : 65001
Date: 13/05/2022 16:22:22
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for admin
-- ----------------------------
DROP TABLE IF EXISTS `admin`;
CREATE TABLE `admin` (
`id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '编号',
`name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '姓名',
`sex` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '性别',
`age` int(3) NULL DEFAULT NULL COMMENT '年龄',
`phone` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '电话',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '管理员表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for anima
-- ----------------------------
DROP TABLE IF EXISTS `anima`;
CREATE TABLE `anima` (
`id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '动物编号',
`name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '动物名',
`species` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '动物品种',
`price` float(10, 2) NULL DEFAULT NULL COMMENT '价格',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '动物表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for breeder
-- ----------------------------
DROP TABLE IF EXISTS `breeder`;
CREATE TABLE `breeder` (
`id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '编号',
`name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '姓名',
`sex` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '性别',
`age` int(3) NULL DEFAULT NULL COMMENT '年龄',
`phone` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '电话',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '饲养员表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for doctor
-- ----------------------------
DROP TABLE IF EXISTS `doctor`;
CREATE TABLE `doctor` (
`id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '编号',
`name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '姓名',
`sex` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '性别',
`age` int(3) NULL DEFAULT NULL COMMENT '年龄',
`phone` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '电话',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '医生表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for support
-- ----------------------------
DROP TABLE IF EXISTS `support`;
CREATE TABLE `support` (
`id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '编号',
`name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '姓名',
`sex` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '性别',
`age` int(3) NULL DEFAULT NULL COMMENT '年龄',
`phone` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '电话',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '后勤人员表' ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
- 运行脚本即可
- 接下来运行代码生成器即可生成
- 得到如图所示目录:
- 到这里基本OK,自动生成不会自动加注解自己手动加
- 添加主键删除使用Lombok工具删除get和set方法
- 编辑接口数据,简单的curd就这样实现了
AdminController类
package com.cjy.mybatis_plus.controller;
import com.cjy.mybatis_plus.entity.Admin;
import com.cjy.mybatis_plus.service.IAdminService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.stereotype.Controller;
/**
* <p>
* 管理员表 前端控制器
* </p>
*
* @author xieyixu
* @since 2022-05-13
*/
@Controller
@RequestMapping("/mybatis_plus/admin")
public class AdminController {
@Autowired
private IAdminService iAdminService;
/**
* 新增人员
* @param admin
*/
@PutMapping("/save")
public void save(Admin admin){
iAdminService.save(admin);
}
}
- 编写测试类
MybatisPlusApplicationTests类
package com.cjy.mybatis_plus;
import com.cjy.mybatis_plus.entity.Admin;
import com.cjy.mybatis_plus.service.IAdminService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class MybatisPlusApplicationTests {
@Autowired
private IAdminService iAdminService;
@Test
/**
* 新增100条
*/
void save() {
for (int i = 0; i <20 ; i++) {
Admin admin = new Admin();
admin.setId("0"+i);
admin.setAge(25);
admin.setName("李四");
admin.setPhone("15487956123");
admin.setSex("男");
iAdminService.save(admin);
}
}
@Test
/**
* 删除 编号 00管理员
*/
void delete() {
iAdminService.removeById(00);
}
@Test
/**
* 修改 编号 01的管理员
*/
void update() {
Admin admin = new Admin();
admin.setId("01");
admin.setAge(25);
admin.setName("张三");
admin.setPhone("15487956123");
admin.setSex("男");
iAdminService.updateById(admin);
}
@Test
/**
* 查找编号为01的管理员
*/
void find() {
Admin byId = iAdminService.getById(01);
System.out.println(byId);
}
}
结果:
OK!
vue搭建看我这篇文章cmd搭建vue手脚架
或者idea搭建vue项目