Springboot+mybatis(单表带登录CRUD)
工程搭建
1.创建项目
1). 创建SpringBoot工程,并引入web开发起步依赖、mybatis、mysql驱动、lombok。

2.准备sql表和yml
2). 创建数据库及对应的表结构,并在application.yml中配置数据库的基本信息。


3.准备包结构和基础代码
-
准备基础包结构

-
实体类Dept

-
统一响应结果Result

-
基础代码结构
-
DeptMapper

-
DeptService

-
DeptServiceImpl

-
DeptController

查询
1.实现思路
明确了删除部门的需求之后,再来梳理一下实现该功能时,三层架构每一层的职责:

-
Controller层,负责接收前端发起的请求,并调用service查询部门数据,然后响应结果。
-
Service层,负责调用Mapper接口方法,查询所有部门数据。
-
Mapper层,执行查询所有部门数据的操作。
2.代码实现
1). Controller层
在 DeptController 中,增加 list 方法,代码如下:

2). Service层
在 DeptService 中,增加 findAll方法,代码如下:


3)Mapper层
在 DeptMapper 中,增加 findAll方法,代码如下:


删除
1.思路分析

2.接受前端请求参数
如果请求参数名与形参变量名相同,直接定义方法形参即可接收。(省略@RequestParam)


3.代码实现
1). Controller层

2). Service层


3). Mapper层

新增
1.思路分析

2.json参数接收
我们看到,在controller中,需要接收前端传递的请求参数。 那接下来,我们就先来看看在服务器端的Controller程序中,如何获取json格式的参数。
-
JSON格式的参数,通常会使用一个实体对象进行接收 。
-
规则:JSON数据的键名与方法形参对象的属性名相同,并需要使用
@RequestBody注解标识。
前端传递的请求参数格式为json,内容如下:{"name":"研发部"}。这里,我们可以通过一个对象来接收,只需要保证对象中有name属性即可。

代码实现
1). Controller层

2). Service层


3)Mapper层
/** * 保存部门 */修改@Insert("insert into dept(name,create_time,update_time) values(#{name},#{createTime},#{updateTime})") void insert(Dept dept);
如果在mapper接口中,需要传递多个参数,可以把多个参数封装到一个对象中。 在SQL语句中获取参数的时候,#{...} 里面写的是对象的属性名【注意是属性名,不是表的字段名】。
修改
(一).查询回显
1.实现思路
明确了根据ID查询部门的需求之后,再来梳理一下实现该功能时,三层架构每一层的职责:

2.路径参数接收
/depts/1,/depts/2 这种在url中传递的参数,我们称之为路径参数。 那么如何接收这样的路径参数呢 ?
路径参数:通过请求URL直接传递参数,使用{…}来标识该路径参数,需要使用 @PathVariable获取路径参数。如下所示:

如果路径参数名与controller方法形参名称一致,@PathVariable注解的value属性是可以省略的。
3.代码实现
1). Controller层

2). Service层


3).Mapper层
@Select("select id, name, create_time, update_time from dept where id = #{id}") Dept getById(Integer id);
(二).修改数据
1.实现思路
根据ID修改部门的数据。

通过接口文档,我们可以看到前端传递的请求参数是json格式的请求参数,在Controller的方法中,我们可以通过 @RequestBody 注解来接收,并将其封装到一个对象中。
2.代码实现
1). Controller层

2). Service层


3). Mapper层
/** * 更新部门 */
@Update("update dept set name = #{name},update_time = #{updateTime} where id = #{id}")
void update(Dept dept);
@RequestMapping
公共的路径 /depts 抽取到类上的,
那在各个方法上,就可以省略了这个 /depts 路径。
代码如下:

一个完整的请求路径,应该是类上的 @RequestMapping 的value属性 + 方法上的 @RequestMapping的value属性。
日志
-
Logback入门
1). 准备工作:
引入logback的依赖(springboot中无需引入,在springboot中已经传递了此依赖)

2). 引入配置文件 logback.xml (资料中已经提供,拷贝进来,放在 src/main/resources 目录下; 或者直接AI生成)

3). 日志开关配置 (开启日志(ALL),取消日志(OFF))

-
Logback日志级别

引用

ombok中提供的@Slf4j注解,可以简化定义日志记录器这步操作。添加了该注解,就相当于在类中定义了日志记录器,就下面这句代码:
private static Logger log = LoggerFactory. getLogger(Xxx. class);
更多推荐


所有评论(0)