学成day1(项目框架,mp分页拦截器,lambdaQuerymapper,mysql关联查询,IsEmpty和IsBlank区别)

文章详细介绍了Mybatis的分页拦截器原理,它通过ThreadLocal存储分页参数并修改SQL实现分页。同时,展示了LambdaQueryMapper的使用,如Comment::getArticleId的方式进行条件查询。此外,解释了MySQL的内连接查询示例以及isEmpty和isBlank在判断字符串状态时的区别。
摘要由CSDN通过智能技术生成

项目框架

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)组成的字符串。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值