对数据库的操作,有直接用mybatis,也有用mybatis-plus,使用mybatis的话需要自己在dao层对数据库进行操作,需要编写sql语句。而mybatis-plus实现了基于mybatis的封装与升级(顾名思义嘛),不用自己写sql了,直接调用,这个就需要看看自己的爱好了。
controller---->service------>dao(Mapper)
拦截器或者过滤器
当我们访问一个系统的时候,我们必须要先登录才能访问系统内的数据,如果我们连登录都没有登录,就能看到页面数据,那登录功能还有什么意义?
所以我们需要构造一个拦截器或者过滤器,来拦截请求,判断是否登录再放行。当然,对于登录和一些访问前端资源的请求我们就无需考虑是否登录的问题,应该直接放行。
判断是否登录的实现,往往通过session、JWT令牌是否有值来实现。
登录功能实现
登录即用户在前端输入数据,前端将数据封装成JSON格式发送给后端,后端可以用相应的实体类对象进行接收,使用注解@Requestbody即可。
接收到密码时,最好先用md5技术先对密码进行加密处理。
如果利用mybatis-plus框架的话,往往使用条件构造器,然后直接调用service层的查询方法,当输入数据与数据库相匹配时,登录成功。
分页查询
现在大部分项目都采用分页查询的功能,直接使用mybatis-plus框架的话,直接采用BaseMapper内置的page来实现。创造分页构造器,条件构造器,再调用page方法。
如果用mybatis的话就要用pagehelper来实现了,实现比较啊麻烦,代码量较多。
涉及到多个表的分页查询
首先,需要建立一个实体类,能够接收两个表的所有的实体属性(创建一个新的实体,继承其中一个涉及实体属性比较多的实体,再添加另一个实体剩下的属性),接收完毕之后,再分别对两个表进行操作。
举个例子:一个菜品表+一个菜品口味表。
(算了,明天来写一写分页构造器、条件构造器吧。。理解还不够深刻。。不管是分页查询还是新增还是修改,涉及到多个表的都比较麻烦,分别需要对多个表进行相应的操作)