今天完成了登录,成功登录主页面。
一、流程及问题
1、导入employee实体类,该类属性与数据库中employee表项一一对应
2、发现idea创建包无法分层:Option-TreeAppearance-CompactMiddelePackeages
3、创建Controller、Service、Mapper包和相应接口,继承Mybatis Plus提供的类,关系如下:
4、创建通用返回结果类,作为后端和前端信息的接口
5、在control创建登录方法
6、显示后端接口连接异常:在service的impl文件夹下的EmployeeServiceImpl中添加@service
7、报错信息 ERROR 14396 --- [reate-279544722] com.alibaba.druid.pool.DruidDataSource:
在application.yml文件中修改password
8、对登录方法进行调试,并成功登录
二、相关知识
1、MVC模式与Controller/Service/Mapper:
详情可见Java中代码各层级介绍(controller、service、mapper、dao等)_controller层,service层,mapper层-CSDN博客
1、dao(mapper)层:数据访问层
dao层属于一种比较底层,比较基础的操作,具体到对于某个表的增删改查,也就是说某个DAO一定是和数据库的某一张表一 一对应的,其中封装了增删改查基本操作,建议DAO只做原子操作,增删改查。
负责与数据库进行联络的一些任务都封装在此,dao层的设计首先是设计dao层的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可以再模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,dao层的数据源配置,以及有关数据库连接参数都在Spring配置文件中进行配置。
2、service层:服务层
你需要扩展的知识:基于Spring框架的应用:构建企业级应用的业务逻辑层 。
粗略的理解就是对一个或多个DAO进行的再次封装,封装成一个服务,所以这里也就不会是一个原子操作了,需要事物控制。
service层主要负责业务模块的应用逻辑应用设计。同样是首先设计接口,再设计其实现类,接着再Spring的配置文件中配置其实现的关联。这样我们就可以在应用中调用service接口来进行业务处理。service层的业务实,具体要调用已经定义的dao层接口,封装service层业务逻辑有利于通用的业务逻辑的独立性和重复利用性。程序显得非常简洁。
3、controller层
Controler负责请求转发,接受页面过来的参数,传给Service处理,接到返回值,再传给页面。
controller层负责具体的业务模块流程的控制,在此层要调用service层的接口来控制业务流程,控制的配置也同样是在Spring的配置文件里进行,针对具体的业务流程,会有不同的控制器。我们具体的设计过程可以将流程进行抽象归纳,设计出可以重复利用的子单元流程模块。这样不仅使程序结构变得清晰,也大大减少了代码量。
2、注解解释
1、@RestController
@RestController的作用等同于@Controller + @ResponseBody。
@Controller注解表明了这个类是一个控制器类,为了使该类成为处理器,除了@Controller注解还需要@RequestMapping。@RequestMapping注解是用来映射请求的,即指明处理器可以处理哪些URL请求,该注解既可以用在类上,也可以用在方法上。
@ResponseBody表示方法的返回值直接以指定的格式写入Http response body中,而不是解析为跳转路径。
2、@PostMapping
@PostMapping注解用来声明POST请求处理方法,通常与@RequestBody注解一起使用,后者可以将请求体中的数据绑定到一个Java对象上,方便处理POST请求中的数据。
3、LambdaQueryWrapper
LambdaQueryWrapper是mybatis plus中的一个条件构造器对象,只是是需要使用Lambda 语法使用 Wrapper。主要流程为创建一个LambdaQueryWrapper对象 -> 使用Lambda表达式或方法引用构造查询条件 -> 调用MyBatis-Plus提供的方法获取查询结果。