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

简介: 快速学习 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 不会出现重复。

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
2月前
|
监控 安全 程序员
Python日志模块配置:从print到logging的优雅升级指南
从 `print` 到 `logging` 是 Python 开发的必经之路。`print` 调试简单却难维护,日志混乱、无法分级、缺乏上下文;而 `logging` 支持级别控制、多输出、结构化记录,助力项目可维护性升级。本文详解痛点、优势、迁移方案与最佳实践,助你构建专业日志系统,让程序“有记忆”。
269 0
|
PyTorch 算法框架/工具
Pytorch学习笔记(七):F.softmax()和F.log_softmax函数详解
本文介绍了PyTorch中的F.softmax()和F.log_softmax()函数的语法、参数和使用示例,解释了它们在进行归一化处理时的作用和区别。
1352 1
Pytorch学习笔记(七):F.softmax()和F.log_softmax函数详解
|
Prometheus Cloud Native Go
Golang语言之Prometheus的日志模块使用案例
这篇文章是关于如何在Golang语言项目中使用Prometheus的日志模块的案例,包括源代码编写、编译和测试步骤。
276 4
Golang语言之Prometheus的日志模块使用案例
|
jenkins 持续交付
jenkins学习笔记之三:使用jenkins共享库实现日志格式化输出
jenkins学习笔记之三:使用jenkins共享库实现日志格式化输出
jenkins学习笔记之三:使用jenkins共享库实现日志格式化输出
|
Go 开发者
【应用服务 App Service】App Service发生错误请求时,如何查看IIS Freb日志,从中得知错误所发生的模块,请求中所携带的Header信息
【应用服务 App Service】App Service发生错误请求时,如何查看IIS Freb日志,从中得知错误所发生的模块,请求中所携带的Header信息
204 2
|
数据挖掘 语音技术
3D-Speaker说话人任务的开源项目问题之语义说话人信息模块在说话人日志系统中的问题如何解决
3D-Speaker说话人任务的开源项目问题之语义说话人信息模块在说话人日志系统中的问题如何解决
205 1
|
存储 安全 Python
[python]使用标准库logging实现多进程安全的日志模块
[python]使用标准库logging实现多进程安全的日志模块
466 1
|
Shell Python
salt自定义模块内使用日志例子
salt自定义模块内使用日志例子