Spring Boot + MyBatis plus + vue 搭建前后端框架

本文介绍了如何使用Spring Boot、MyBatis Plus和Vue搭建前后端框架。从数据库设计开始,包括字符集、排序规则和字段类型的选择,接着讲解Spring Boot后台架构的搭建,如项目创建、依赖管理、日志处理和异常处理。最后,文章覆盖了Vue前端的搭建,包括Vue CLI的安装和项目创建。
摘要由CSDN通过智能技术生成

项目流程及问题

数据库设计

数据库字符集问题
  1. 字符集:utf8mb4兼容utf8,Unicode编码区1~126是utf8区,126以下是utf8mb4兼容区。(一般选utf8:不浪费空间)
    Unicode区表
数据库排序规则问题utf8_bin与utf8_general_ci(一般分这两种)
  1. bin是二进制,a与A会区别对待(例:SELECT * FROM table WHERE txt = ‘a’)
    utf8_general_ci(case insensitive:大小写不敏感):有注册用户名和邮箱使用(邮箱大小写都是同一账户–现在才发现)
    utf8_general_cs(case sensitive:大小写敏感):有用户名与邮箱用它有不良后果(msyql 5.6以上便不支持了-会报错-具体是从哪个版本我没试,反正5.6以上都不行)
数据库设计规则

58sql军规

  1. 数据库,表,字段用英文单词,且使用单数
  2. Id为主键,一般为bigint自增(分库分表集群用varchar)
  3. 表必备字段id,创建时间create_time,更新时间update_time(考虑逻辑删除deleted,乐观锁version)
  4. Deleted(最好不要is_deleted:有些框架pojo中isDeleted=getDeleted)
  5. 小数一定要用decimal
  6. 数据库字段中固定长度(id)时(char固定长度(不够填空),效率高,varchar可变,省存储空间)
  7. 两个字符一个中文varchar(20)(手机号必须用这个)
  8. Default默认:empty string空字符串/空/null值(插入null报错,原因选了不为null)
  9. 不设置外键,最好在业务逻辑层去处理
mysql字段-数据类型(数字/时间/字符)
 tinyint(1byte) smallint(2byte:65536) mediumint(3byte) int  bigint(8byte)
Decimal==numeric
Date日期  datetime日期+时间

Spring Boot+mybatisPlus的后台架构搭建

Spring Boot项目创建
Spring配置繁琐,太多xml,Annotation配置,让人眼花缭乱;
Spring Boot采用Java config方式对Spring配置;其二,不用配置tomcat,包括静态资源处理,视图解析器,注解扫描等

Spring boot小结

  1. spring Initializr(默认从官网拉取创建)(idea要下载Lombok插件)
  2. 添加依赖(可不选,用什么直接在依赖里添加依赖)
  3. 项目依赖(pom.xml springboot有的)spring-boot-starter(+test) junit-vintage-engine 三个依赖
Spring Boot 添加(mybatisPlus等)重要依赖

父pom里定义的一些版本

<!-- Spring Boot项目依赖一般不用version(需要时报错No version of dendency) -->
<!-- <parent>标签继承了父pom,2.1及以上以上版本是cj.jdbc.Driver(url还要加时区) -->
		<dependency>    <!--   springboot web模块支持,自动引入了web模块开发需要的相关jar包     -->
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
		<dependency>	<!--   mysql数据库驱动     -->
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>	<!--   Lombok注解方便写实体类     -->
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>    <!--  实体类上的注解描述  -->
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
         <dependency>     <!--   Spring Boot的mybatisPlus依赖(就只是这个mybatis-plus依赖不是)    -->
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.3.0</version>
        </dependency>    
        <dependency>   <!-- 代码生成器依赖(3.0.3后需要自己加) -->
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.3.0</version>
        </dependency>
        <dependency>    <!--Velocity模板-->
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.1</version>
        </dependency>	
Spring Boot的文件结构(创建包)
	创建common包放自己写的类(下有config/exception/util三个包)
mabatis plus自动生成主要文件(MP)
	在utils下创建mysqlGenerator类(自动生成)(要修改父包名等等)
public class mysqlGenerator {
   
    public static String scanner(String tip) {
   
        Scanner scanner = new Scanner(System.in);
        StringBuilder help = new StringBuilder();
        help.append("请输入" + tip + ":");
        System.out.println(help.toString());
        if (scanner.hasNext()) {
   
            String ipt = scanner.next();
            if (StringUtils.isNotEmpty(ipt)) {
   
                return ipt;
            }
        }
        throw new MybatisPlusException("请输入正确的" + tip + "!");
    }
    public static void main(String[] args) {
   
        AutoGenerator mpg = new AutoGenerator();	// 代码生成器
        DataSourceConfig dsc = new DataSourceConfig();	 // 数据源配置
        dsc.setDbType(DbType.MYSQL);	//数据库类型
        //dsc.setSchemaName("public");数据库schemaName
        dsc.setUrl("jdbc:mysql://127.0.0.1:3306/graduation?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8");
        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("root");
        mpg.setDataSource(dsc);
       
        PackageConfig pc = new PackageConfig();	 // 包配置
        pc.setParent("com.xxw.graduation");	 //父包名。如果为空,将下面子包名必须写全部, 否则就只需写子包名
        pc.setModuleName(scanner("模块名"));	//父包模块名
        mpg.setPackageInfo(pc)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值