开发者学堂课程【全面讲解开源数据库中间件 MyCat 使用及原理(四):MyCat - 日志模块 - 条件查询日志】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/758/detail/13325
MyCat - 日志模块 - 条件查询日志
内容介绍:
一、日志查询
二、测试
一、日志查询
查询日志想要在后台根据查询条件将对应的日志查询出来,并供业务人员查看即可。
接下来,我们将完成日志查询的操作
日志查询共有四个条件:操作人、操作方法、操作的返回值类型以及操作耗时。
我们根据这四个条件来完成条件查询。
1.在 mapper 包中定义查询方法
首先,在 mapper 包中定义查询方法,(查询返回的是链表,所以这里是 List )定义一个方法 search ,使用 mapper 来封装查询条件
代码如下:
import java. util.List;
import java.util.Map;
public interface OperateLogMapper {
╱**
*插入日志
*@param operatelog
*/
public void insert (TbOperatelog operatelog);
╱**
*根据条件查询日志
*param searchMap
@return
*/
public List<Tboperatelog> search (Map searchMap) ;
}
2.方法定义完成后,再定义 mapper 配置文件
在其中,需要编写一个 select 语句:
我们还需定义一个 operateLogResultMap,因为实体类与表结构中的字段并不对应,在实体类中使用驼峰命名,在这里使用的是下划线分割,所以要声明一个 operateLogResultMap 来映射数据库表结构中的字段以及实体类中的信息。
mapper 映射配置文件完成。
3.然后在 service 中定义一个接口方法:
(由于要考虑分页,所以这里要返回 Page )
/**
*根据条件查询日志列表(分页)
*param searchMap
*@return
*/
public Page search (Map searchMap, Inteqer page , Integer size);
4.接下来对接口方法进行实现
在实现接口方法过程中,由于要实现分页,需要使用 PageHelper 设置分页参数。
分页参数设置完成后,直接调用 operateLogMapper 中的 search 方法,将 searchMap 传入。然后得到一个 List,直接将该 List 返回,并且将 List 进行强制转换。
部分代码如下:
@Override
public Page search(Map searchMap,Integer page,Integer size){
//设置分页参数
PageHelper.startPage(page,size) ;
List<TbOperatelog> operatelogList = operateLogMapper.search(searchMap);
retupn (Page) operatelogList
}
service 层的方法实现完成。
5.接下来编写 controller 层
在其中编写一个方法:
@PostMapping ( " / search/ {page} /{ size} ")
public Result findPage (@RequestBody Map searchMap,@Pathvariable ( "page") Integer page,@Pathvariable( "size"){
Page p = operateLogService.search (searchMap,page,size);
long total = p.getTotal ( ) ;
//得到结果列表
List result = p.gstResult () ;
//封装
PageResult = new PageResult ( total,result);
return new Result ( flag: true,statusCode.OK,message: "查询成功" , pageResult);
}
对接口进行初始化
二、测试
先对当前的日志微服务进行重新启动,然后测试 search 方法:
得到查询结果:
在查询中,还可以去传递条件,查询的条件可以根据操作人、操作方法、返回值以及操作时间。这里以操作方法为例:
得到结果(将 show 方法过滤出来):






