SpringBoot报错整理(持续更新中........)

1. 在往数据库里添加一行数据,而没有指定id的时候(因为数据库中设置了id自增,所以添加的时候选择了不添加id),运行SpringBoot项目的时候报错:

ested exception is org.apache.ibatis.reflection.ReflectionException: Could not set property 'id' of 'class com.example.domain.Book' with value '1630608189923823618'
SpringBoot报错整理(持续更新中........)_第1张图片
原因:Mybatis-plus默认生成id的策略是由它自己指定的,用的是雪花算法。我们则需要使用数据库的id自增策略。
解决方法:在application.yml中指定即可:id-type:auto
SpringBoot报错整理(持续更新中........)_第2张图片

2. Springboot使用mabatis-plus往数据库插入数据的时候中文出现???乱码。

解决方法一:在url路径后面添加:useUnicode=true&characterEncoding=utf8(如果还未解决则继续使用方法二)
SpringBoot报错整理(持续更新中........)_第3张图片
解决方法二:在IEDA中选择file->setting->editor->code style->file encodings都改为utf-8 ,并且勾上选项。(如果还未解决则继续使用方法三)
SpringBoot报错整理(持续更新中........)_第4张图片
解决方法三:找到数据库安装路径下的my.ini文件,将第66行和第99行的#号去掉(每个人行数位置可能不同),并且改为下面样式。然后重启MySQL即可(从计算机–服务–MySQL80重启也可以),命令行重启(需要使用管理员身份运行)也可以(启动:net start mysql 80 停止:net stop mysql80)
SpringBoot报错整理(持续更新中........)_第5张图片
在这里插入图片描述
SpringBoot报错整理(持续更新中........)_第6张图片

3.使用MyBatis-plus报错数据库属性名xxx_xxx不存在

知识点:mybatis-plus采用的是驼峰命名法。
所以默认情况下 mybatis-plus会自动将实体类的属性名中的 大写字母 变成 小写 并加上 下换线_ (last_name)当做数据库表字段
解决办法:

1. 将数据库中的属性名改为下划线的样式
2.  为每个实体类单独指定字段名
@Data
	@TableName("stu_employee")
	public class Employee  {
	    @TableField(value = "isAdmin")
	    private String isAdmin;
	}
  1. 修改配置文件,关闭驼峰命名法:
#在springboot的yml配置文件中配置
mybatis-plus:
  configuration:
    map-underscore-to-camel-case: false

4. vue前端访问后端报错:net::ERR_FAILED 200

在这里插入图片描述

问题分析:
由于后端打印了日志表明前端的访问没有错,问题出在后端。
即为前端可以把数据发送到后端,后端能接收到也能操作,但是后端无法将数据发送出去,经过资料查询说明是后端未加跨域的response相应。
解决办法:
新建一个类GlobalCorsConfig.java实现全局跨域

package com.sf.config;

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

import java.util.ArrayList;
import java.util.List;

/**
 * 全局跨域配置
 */
@Configuration
public class GlobalCorsConfig {
    /**
     * 允许跨域调用的过滤器
     */
    @Bean
    public CorsFilter corsFilter() {
        //1. 添加 CORS配置信息
        CorsConfiguration config = new CorsConfiguration();
        // 放行哪些原始域
        config.addAllowedOrigin("*");
        // 是否发送 Cookie
        List<String> list = new ArrayList<>();
        list.add("*");
        config.setAllowedOriginPatterns(list);
        // 放行哪些请求方式
        config.addAllowedMethod("*");
        // 放行哪些原始请求头部信息
        config.addAllowedHeader("*");
        // 暴露哪些头部信息
        config.addExposedHeader("*");
        //2. 添加映射路径
        UrlBasedCorsConfigurationSource corsConfigurationSource = new UrlBasedCorsConfigurationSource();
        corsConfigurationSource.registerCorsConfiguration("/**",config);
        //3. 返回新的CorsFilter
        return new CorsFilter(corsConfigurationSource);
    }
}

5. SpringBoot报错ERROR org.springframework.boot.SpringApplication – Application run failed

SpringBoot报错整理(持续更新中........)_第7张图片

  1. 报错信息:当有Input length = 1时,经过各种查询,说明是我不知道什么时候点击到了更改.yml文件字符为GBK,修改过来就可以了
  2. 报错信息:当有Input length = 2时,因为修改的时候不小心把Default encoding for properties files修改为了UTF-8。
    解决办法:将字符修改为如下样式,就能正常跑了。
    SpringBoot报错整理(持续更新中........)_第8张图片

你可能感兴趣的:(Java,spring,boot,java,mybatisplus)