MyCat - 日志模块 - 插入日志 | 学习笔记

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 快速学习 MyCat - 日志模块 - 插入日志

开发者学堂课程【全面讲解开源数据库中间件 MyCat 使用及原理(四):MyCat - 日志模块 - 插入日志】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/758/detail/13323


MyCat - 日志模块 - 插入日志

内容介绍:

一、插入日志

二、测试

 

一、插入日志

上节内容分析完 ID 的生成机制,本节内容是完成日志的插入操作

1.定义一个 MyCat 接口:

image.png

声明方法:

import cn.itcast.model .Tboperatelog;

public interface operateLogMapper {

/**

*插入日志

*@param operatelog

*/

public void insert ( TbOperatelog operatelog) ;

}

operatelog 是与表结构对应的实体类

2.声明对应的映射配置文件

image.png

再声明一个 xml 配置文件:

image.png

引入 mybatis 配置文件的头信息:

namespace 是接口的权限另类名

编写 insert 语句:

直接将其拷贝加入即可

image.png

完成后:

image.png

接口以及映射配置文件编写完成。

3.再编写 service 接口:

image.png

在该 service 接口中声明一个方法:

import cn.itcast. model. TbOperatelog;

publie interface OperateLogService {

/**

*插入日志

@param operateLog

* /

public void insert (TbOperatelog operatelog);

}

再创建一个包,是其实现类存放的包:

image.png

创建实现类:

image.png

让该类实现一个接口并且实现其中的一个方法:

import cn.itcast. log.mapper.operateLogMapper;

import cn.itcast.log.service.operateLogservice;

import cn.itcast.model.Tboperatelog;

import org.springframework.stereotype.Service;

@Service

public class operateLogServiceImpl implements operateLogService {

@Autowired

private OperateLogMapper operateLogMapper;

@Autowier

private IDWorker idWorker;

@Override

private void insert (TbOperatelog operatelog){

//1.获取一个分布式的 id

long id =idWork.nextId();   //可以得到该 id

operatelog.serId(id);

//调用 Mapper 中的方法进行插入

operateLogMapper.insert(operatelog)  

}

}

到此,将 service 层编写完成。

4.接下来需要去编写一个 controller

先创建:

image.png

做一个注解 @ReatController,再加一个注解 @RequestMapping, 其前缀为 operateLog。

所以第二个注解为 @RequestMapping(“/ operateLog”)。然后在类中注入一个OperateLogService,通过 @Autowired 实现注入,再在其中添加一个 add 方法(注意:返回 Result,因为所有接口的返回值统一是 Result)。

在该方法中接收一个 TbOperatelog operatelog 对象,这里需要加注解 @PostMapping(“/add”),声明完成后,在该方法中调用 operateLogService 中的 insert 方法插入日志,插入日志完成后直接返回 new Result,里面传入 true 和 StatusCode.OK

代码如下:

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.Restcontroller;

@Restcontroller

@RequestMapping ( " /operateLog")

public class operateLogController {

@Autowired

private OperateLogservice operateLogService;

@PostMapping (" / add")

public Result add(@RequestBody Tboperatelog operatelog){

operateLogService.insert(operatelog) ;

return new Result ( flag: true,statuscode. OK,message:"操作成功");

}

}

在 service 层要向其中查询数据,所以可以在其中加一个事务的注解:

(部分代码)

@Transactional

@Override

private void insert (TbOperatelog operatelog){

//1.获取一个分布式的 id

long id =idWork.nextId(); //可以得到该 id

operatelog.serId(id);

//调用 Mapper 中的方法进行插入

operateLogMapper.insert(operatelog)  

}

 

二、测试

接口开发完毕,对插入日志的接口做一个测试

1.启动 v_service_log,(这里不通过 GatewayApplication),直接访问该 log 的微服务。

暴露出 9003 端口;

image.png

2.接下来插入日志:

需要请求 /operateLog

请求方式为 POST ,并选择 Body,然后添加数据。

代码:

{

"returnValue" :"OK",

"returnClass" :""java.lang.String",

"operateClass" : "cn .itcast.goods.SPUController",

operateMethod"" : "findById"

}

点击 Send:

image.png

操作成功。

刷新数据库,发现数据插入成功:

image.png

并且生成了 id,且可以保证该 id 不会出现重复。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1月前
|
Prometheus Cloud Native Go
Golang语言之Prometheus的日志模块使用案例
这篇文章是关于如何在Golang语言项目中使用Prometheus的日志模块的案例,包括源代码编写、编译和测试步骤。
25 3
Golang语言之Prometheus的日志模块使用案例
|
2月前
|
jenkins 持续交付
jenkins学习笔记之三:使用jenkins共享库实现日志格式化输出
jenkins学习笔记之三:使用jenkins共享库实现日志格式化输出
jenkins学习笔记之三:使用jenkins共享库实现日志格式化输出
|
8天前
|
Shell Python
salt自定义模块内使用日志例子
salt自定义模块内使用日志例子
logging 日志 模块
logging 日志 模块
|
2月前
|
Go 开发者
【应用服务 App Service】App Service发生错误请求时,如何查看IIS Freb日志,从中得知错误所发生的模块,请求中所携带的Header信息
【应用服务 App Service】App Service发生错误请求时,如何查看IIS Freb日志,从中得知错误所发生的模块,请求中所携带的Header信息
|
2月前
|
数据挖掘 语音技术
3D-Speaker说话人任务的开源项目问题之语义说话人信息模块在说话人日志系统中的问题如何解决
3D-Speaker说话人任务的开源项目问题之语义说话人信息模块在说话人日志系统中的问题如何解决
|
2月前
|
存储 监控 Java
|
2月前
|
存储 安全 Python
[python]使用标准库logging实现多进程安全的日志模块
[python]使用标准库logging实现多进程安全的日志模块
|
3月前
|
存储 算法 开发工具
Etcd/Raft 原理问题之Etcd-Raft是什么
Etcd/Raft 原理问题之Etcd-Raft是什么
|
2月前
|
监控 Java API
如何将不同业务模块产生的日志 分多文件记录
如何将不同业务模块产生的日志 分多文件记录
24 0
下一篇
无影云桌面