0.SpringBoot入门——新手必看

目录

一、如何一步一步创建项目

二、如何解决无效的发源版本17/21

三、每个层之间怎样互相连接

四、如何根据数据库自动生成代码

五、mybatis-plus 分页查询 getTotal和getPages为0的问题解决

六、找不到mapper路径Invalid bound statement (not found): com.mxj.mapper.UserMapper.pageC

七、控制台报错,在分页时SQL自动添加了两个LIMIT

八、学会使用专业建模工具Power Designer

九、对于数据库中DATE类型的数据,使用sql进行置空:

十、使用postaman发送JSON数据,后台一直无法接受到,显示null

十一、RequestBody和ResponseBody有啥区别?

十二、如何将两个List快速合并为一个?

十三、总结:


一、如何一步一步创建项目

1.创建

0.SpringBoot入门——新手必看_第1张图片

2.修改配置:进入settings -> maven -> maven runner

0.SpringBoot入门——新手必看_第2张图片0.SpringBoot入门——新手必看_第3张图片

0.SpringBoot入门——新手必看_第4张图片

3.项目模块

0.SpringBoot入门——新手必看_第5张图片0.SpringBoot入门——新手必看_第6张图片

0.SpringBoot入门——新手必看_第7张图片

二、如何解决无效的发源版本17/21

请执行第一步的2,3操作

三、每个层之间怎样互相连接

0.SpringBoot入门——新手必看_第8张图片

一般都会有四个包:entity(实体类:和数据库对应)

                                controller:(主要方法,调用service)

                               service:(调用mapper,先写接口XService,然后写它的实现方法XServiceImpl)

                                mapper(先在mapper中写接口,然后用mapperXML实现接口,就是具体的sql)

四、如何根据数据库自动生成代码

要想自动生成代码,首先需要在pom.xml中导入两个依赖:

 
            com.baomidou
            mybatis-plus-boot-starter
            3.4.3.1
        

        
            com.baomidou
            mybatis-plus-generator
            3.3.2
        

以下是具体的方法:


public class Main {
    public static void main(String[] args) {
        //代码生成器
        AutoGenerator autoGenerator = new AutoGenerator();
        DataSourceConfig dataSourceConfig = new DataSourceConfig();
        dataSourceConfig.setDbType(DbType.MYSQL);
        dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
        dataSourceConfig.setUsername("root");
        dataSourceConfig.setPassword("123456");
        dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/mmall?useUnicode=true&characterEncoding=UTF-8");
        autoGenerator.setDataSource(dataSourceConfig);
        GlobalConfig globalConfig = new GlobalConfig();
        globalConfig.setOpen(false);
        globalConfig.setOutputDir(System.getProperty("user.dir")+"/src/main/java");
        globalConfig.setAuthor("admin");
        globalConfig.setServiceName("%sService");
        autoGenerator.setGlobalConfig(globalConfig);
        PackageConfig packageConfig = new PackageConfig();
        packageConfig.setParent("com.mxj");
//注意:这里写你自己的路径
        packageConfig.setEntity("entity");
        packageConfig.setMapper("mapper");
        packageConfig.setController("controller");
        packageConfig.setService("service");
        packageConfig.setServiceImpl("service.impl");
        autoGenerator.setPackageInfo(packageConfig);
        StrategyConfig strategyConfig = new StrategyConfig();
        strategyConfig.setEntityLombokModel(true);
        strategyConfig.setNaming(NamingStrategy.underline_to_camel);
        //下划线转驼峰,用于数据库数据转java
        strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);

        List list = new ArrayList<>();
        TableFill tableFill1 = new TableFill("create_time", FieldFill.INSERT);
        TableFill tableFill2 = new TableFill("update_time",FieldFill.INSERT_UPDATE);
        list.add(tableFill1);
        list.add(tableFill2);

        strategyConfig.setTableFillList(list);
        autoGenerator.setStrategy(strategyConfig);

        autoGenerator.execute();
    }
}

     自动生成的代码,需要在mapper.java类中添加@Mapper注解,否则核心类会报错,无法成功启动

五、mybatis-plus 分页查询 getTotal和getPages为0的问题解决

需要config一下,官网中有具体的讲解,只需要自己新建一个类,将下面的代码粘过去就可以了。

记得写注解。一开始我忘记写注解找了很久,这都是很小的问题

@Configuration
public class MybatisPlusPageConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        //创建拦截器,对执行的sql进行拦截
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        //对Mysql拦截
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}

六、找不到mapper路径Invalid bound statement (not found): com.mxj.mapper.UserMapper.pageC

0.SpringBoot入门——新手必看_第9张图片

在application.yml中添加注解:

0.SpringBoot入门——新手必看_第10张图片

注意:注解中写自己对应的路径

0.SpringBoot入门——新手必看_第11张图片

七、控制台报错,在分页时SQL自动添加了两个LIMIT

0.SpringBoot入门——新手必看_第12张图片原因是因为springboot配置mysql的连接池太小了 频繁请求处理不了,建议开大连接池和线程处理数

解决:解决不了,

         重新配了一个项目后,就好了。有其他的朋友,可以在评论区分享一下。

八、学会使用专业建模工具Power Designer

1.表和表之间有没有关系

关联关系一对多,需要在多个的表中,创建外键

2.需要在页面展示的数据有哪些,不需要显示但是不能少的有哪些(比如商品描述)

九、对于数据库中DATE类型的数据,使用sql进行置空:

**这个挺无语的,没办法修改成空,只能复制插入一遍

1.在数据库中将这个字段的默认值设置为NULL

2.将这条记录查出来,然后插入一遍,插入时不要设置时间,就会使用默认的NULL了

select就不贴图了,我使用了QueyWrapper自带的select语句。

十、使用postaman发送JSON数据,后台一直无法接受到,显示null

1.给方法的参数加上注解

0.SpringBoot入门——新手必看_第13张图片

十一、RequestBody和ResponseBody有啥区别?

1.@Responsebody 注解表示该方法的返回的结果直接写入 HTTP 响应正文(ResponseBody)中,一般在异步获取数据时使用;

通常是在使用 @RequestMapping 后,返回值通常解析为跳转路径,加上 @Responsebody 后返回结果不会被解析为跳转路径,而是直接写入HTTP 响应正文中。

0.SpringBoot入门——新手必看_第14张图片

2.@RequestBody是作用在形参列表上,用于将前台发送过来固定格式的数据【xml 格式或者 json等】封装为对应的 JavaBean 对象,封装时使用到的一个对象是系统默认配置的 HttpMessageConverter进行解析,然后封装到形参上。

0.SpringBoot入门——新手必看_第15张图片

十二、如何将两个List快速合并为一个?

在csdn可以学习其他人的写法,最常见的就是使用Stream流,我尝试这使用这种方法代码如下:

0.SpringBoot入门——新手必看_第16张图片

0.SpringBoot入门——新手必看_第17张图片

报错提示:类转换异常ClassCastException

解决方法:

使用Map进行数据存储,直接将list数据put进map中

0.SpringBoot入门——新手必看_第18张图片

结果:数据返回成功

0.SpringBoot入门——新手必看_第19张图片

十三、总结:

     我现在切实的是为自己学习,可以感受到每次学习到知识的喜悦。每解决一个问题都让我兴奋不已。我开窍太晚了,以前学习很机械,总是不过脑子。现在越来越有兴趣,我相信大家跟我一样,都会越来越好,要相信自己,坚持下去!

你可能感兴趣的:(SpringBoot,spring,boot,后端,java)