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

本文详细介绍了SpringBoot中开发环境与生产环境的配置策略,包括如何通过配置文件区分不同环境,以及Controller的使用方法。同时,深入探讨了RESTful API设计,包括常见注解的使用,如@GetMapping、@PostMapping等,以及Spring-Data-Jpa与Mysql的整合,展示了如何进行数据库操作。最后,讲解了事务管理的重要性及其实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接上一篇教程~

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

目的:避免在项目的开发中,不断的修改配置。
解决方式如下:
1.准备3个配置文件,其中一个作为开发环境,一个作为生产环境,一个作为配置环境。
开发环境:
在这里插入图片描述
生产环境:
在这里插入图片描述
2.在配置环境的文件中,配置如下信息
在这里插入图片描述
3.由于使用配置环境的文件只能每次使用一个生产环境或者一个开发环境,所以我们可以使用java命令来启动
在这里插入图片描述

Controller的使用

第一部分(基础的):

在这里插入图片描述

@Controller、RestController、Mapping

在pom.xml中添加如下代码在这里插入图片描述
在Resource目录下再创建新的目录,名为templates,在目录下创建index.html文件,在文件中加入如下代码:< h1>Hello Spring Boot!< /h1>
然后在某个.java 文件中,return 这个html文件
在这里插入图片描述
在这里插入图片描述

映射的多值配置

第一种:无论是访问/hello,还是/hi都得到同一个结果
在这里插入图片描述
第二种:访问 父+子 路径在这里插入图片描述

第二部分(进阶)

在这里插入图片描述

@PathVariable的使用

在这里插入图片描述
在这里插入图片描述
或者,将id写在前边也可以
在这里插入图片描述

@RequestParam的使用

这个注解用于地址栏中?参数=value的情况
在这里插入图片描述
在这里插入图片描述
这个id值可以为null,但是参数一定要传递,否则会400在这里插入图片描述
可以给他一个默认值,配置如下:第一个:参数名,第二个:参数是否必写,第三个:默认值
在这里插入图片描述
这样配置完之后,即使你不传递参数,也能得到值,而不会报错
在这里插入图片描述

@GetMapping的使用

@GetMapping是组合注解,直接表明以何种方式提交。
在这里插入图片描述
此外,还有@PostMapping 和@PutMapping

Spring-Data-Jpa和Mysql

JPA(Java Persistence API) :定义了一系列对象持久化的标准,目前实现这一规范的产品有hibernate、TopLink等。(Spring-Data-Jpa就是对hibernate的整合)
首先要添加两个相关的配置:
在这里插入图片描述
在这里插入图片描述
然后新建一个类,添加一个无参的构造方法,属性id,age,cupSize,与数据库的字段相对应 ,
在这里插入图片描述

关于jpa中ddl-auto的配置

1)如果是create,那么每次执行程序的时候都会新建一个表,如果你这张表在数据库中是存在的,那他会先删掉这张表,然后在创建一个新的表。
在这里插入图片描述
2)update:如果之前没有这个表,会新建;如果之前这个表存在或者这个表里面有数据,那么就会保留。
3)create-drop: 当应用停下来的时候,就会把你创建的相应的表删掉。
在这里插入图片描述
4)validate:验证类里面的属性和表结构是否一致,不一致就会报错。

API的设计

接下来,我们使用自定义接口来完成一些数据库的功能。
在这里插入图片描述
1.新建一个类,GirlController,类中定义一个返回值为list的方法,
以此完成功能1:查询所有女生列表。
在这里插入图片描述
2.新建一个接口,继承jpa,泛型中参数1是(实体的)类名,参数2是id的类型,接口中不需要写方法、变量等。
在这里插入图片描述

3.回到类中,完成调用。
获取女生的列表:fiindAll();
在这里插入图片描述
验证:使用工具POSTMan
在这里插入图片描述
4.功能2:添加一个女生。
在这里插入图片描述
5.功能3:查询一个女生(根据id)
在这里插入图片描述
注意:如果你传递的id是数据库中不存在的,那么http状态是200,而返回的是null
6.功能4:更新(根据id)
在这里插入图片描述
7.功能5:删除(根据id)
在这里插入图片描述
8.功能6:通过年龄查询女生(列表)
首先,拓展接口的功能,在接口中添加方法findByAge
在这里插入图片描述
回到GirlController类中,实现方法,完成查询。
在这里插入图片描述

事务管理

1.写一个类,GirlService,注入接口对象
在这里插入图片描述
2.在GirlController类中,注入GirlService对象调用service中定义的逻辑
在这里插入图片描述
3.但是,如果想要A和B共存亡,那么就要使用到事务来处理。
在方法上面添加一个新的注解@Transactional
在项目中,推荐使用事务(只有在查询的时候不需要)。
在这里插入图片描述

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

7月份的笔记 终于被挪到了csdn里,吼吼吼 开心
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值