项目框架
1、分页拦截器
拦截器的一个作用就是我们可以拦截某些方法的调用,我们可以选择在这些被拦截的方法执行前后加上某些逻辑,也可以在执行这些被拦截的方法时执行自己的逻辑而不再执行被拦截的方法。Mybatis拦截器设计的一个初衷就是为了供用户在某些时候可以实现自己的逻辑而不必去动Mybatis固有的逻辑。
分页拦截器原理:
首先将分页参数放到ThreadLocal中,拦截执行的sql,根据数据库类型添加对应的分页语句重写sql,最终计算出了total总条数,pageNum,pageSize等数据
2、lambdaQueryMapper
public Result commentsByArticleId(Long id) {
LambdaQueryWrapper<Comment> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Comment::getArticleId, id);
// 1. 其中Comment::getArticleId就相当于"ArticleId",表示数据库的字段名
// 1.1 实例化一个Comment对象
// Comment comment = new comment;
// 1.2 调用对象Comment的get方法,这里调用的是getArticleId:
// comment.getArticleId();
// 2.eq方法相当于赋值“=”
// 即将ArticleId的值为参数id,注意此时使用的是get方法而不是set方法
}
3、mysql关联查询
内连接查询
是指所有查询出的结果都是能够在连接的表中有对应记录的。
以t_employee(员工表)和t_dept(部门表)为例:
t_employee表中的记录如下:dept代表该员工所在的部门
t_dept表中记录如下:
select
e.empName,d.deptName
from t_employee e
INNER JOIN t_dept d
ON e.dept = d.id;
查询的结果如下:
3、IsEmpty和IsBlank区别
isEmpty和isBlank的区别在于
isEmpty仅仅是判断空和长度为0字符串
isBlank判断的是空,长度为0,空白字符(包括空格,制表符\t,换行符\n,换页符\f,回车\r)组成的字符串。