SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库

接上一篇教程~

“开发环境”和“生产环境” 不同的配置的解决

目的:避免在项目的开发中,不断的修改配置。
解决方式如下:
1.准备3个配置文件,其中一个作为开发环境,一个作为生产环境,一个作为配置环境。
开发环境:
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库
生产环境:
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库
2.在配置环境的文件中,配置如下信息
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库
3.由于使用配置环境的文件只能每次使用一个生产环境或者一个开发环境,所以我们可以使用java命令来启动
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库

Controller的使用

第一部分(基础的):

SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库

@Controller、RestController、Mapping

在pom.xml中添加如下代码SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库
在Resource目录下再创建新的目录,名为templates,在目录下创建index.html文件,在文件中加入如下代码:< h1>Hello Spring Boot!< /h1>
然后在某个.java 文件中,return 这个html文件
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库

映射的多值配置

第一种:无论是访问/hello,还是/hi都得到同一个结果
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库
第二种:访问 父+子 路径SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库

第二部分(进阶)

SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库

@PathVariable的使用

SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库
或者,将id写在前边也可以
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库

@RequestParam的使用

这个注解用于地址栏中?参数=value的情况
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库
这个id值可以为null,但是参数一定要传递,否则会400SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库
可以给他一个默认值,配置如下:第一个:参数名,第二个:参数是否必写,第三个:默认值
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库
这样配置完之后,即使你不传递参数,也能得到值,而不会报错
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库

@GetMapping的使用

@GetMapping是组合注解,直接表明以何种方式提交。
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库
此外,还有@PostMapping 和@PutMapping

Spring-Data-Jpa和Mysql

JPA(Java Persistence API) :定义了一系列对象持久化的标准,目前实现这一规范的产品有hibernate、TopLink等。(Spring-Data-Jpa就是对hibernate的整合)
首先要添加两个相关的配置:
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库
然后新建一个类,添加一个无参的构造方法,属性id,age,cupSize,与数据库的字段相对应 ,
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库

关于jpa中ddl-auto的配置

1)如果是create,那么每次执行程序的时候都会新建一个表,如果你这张表在数据库中是存在的,那他会先删掉这张表,然后在创建一个新的表。
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库
2)update:如果之前没有这个表,会新建;如果之前这个表存在或者这个表里面有数据,那么就会保留。
3)create-drop: 当应用停下来的时候,就会把你创建的相应的表删掉。
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库
4)validate:验证类里面的属性和表结构是否一致,不一致就会报错。

API的设计

接下来,我们使用自定义接口来完成一些数据库的功能。
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库
1.新建一个类,GirlController,类中定义一个返回值为list的方法,
以此完成功能1:查询所有女生列表。
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库
2.新建一个接口,继承jpa,泛型中参数1是(实体的)类名,参数2是id的类型,接口中不需要写方法、变量等。
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库

3.回到类中,完成调用。
获取女生的列表:fiindAll();
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库
验证:使用工具POSTMan
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库
4.功能2:添加一个女生。
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库
5.功能3:查询一个女生(根据id)
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库
注意:如果你传递的id是数据库中不存在的,那么http状态是200,而返回的是null
6.功能4:更新(根据id)
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库
7.功能5:删除(根据id)
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库
8.功能6:通过年龄查询女生(列表)
首先,拓展接口的功能,在接口中添加方法findByAge
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库
回到GirlController类中,实现方法,完成查询。
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库

事务管理

1.写一个类,GirlService,注入接口对象
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库
2.在GirlController类中,注入GirlService对象调用service中定义的逻辑
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库
3.但是,如果想要A和B共存亡,那么就要使用到事务来处理。
在方法上面添加一个新的注解@Transactional
在项目中,推荐使用事务(只有在查询的时候不需要)。
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库

--------------------结束的分割线----------------------

7月份的笔记 终于被挪到了****里,吼吼吼 开心
SpringBoot入门教程(二)——不同环境的配置、Controller的使用和进阶、操作MySQL数据库