# Mybatis-Auditlog-Plugin **Repository Path**: xiaobao.com/Mybatis-Auditlog-Plugin ## Basic Information - **Project Name**: Mybatis-Auditlog-Plugin - **Description**: Mybatis-Auditlog-Plugin (数据修改日志插件) - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 59 - **Created**: 2018-08-22 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Mybatis-Auditlog-Plugin (数据修改日志插件) #### 项目介绍 Mybatis-Auditlog-Plugin 数据修改日志插件对Mybatis的增删改进行监控,且仅需升级最新版本的Druid库并作少量更改即可支持大部分的数据库(目前版本支持MySQL)。 本插件通过拦截器方式记录Mybatis下所有Mapper类在进行增删改动作时所影响数据的 oldValue(修改前,插入前,删除前),newValue(修改后,插入后,删除后),并将此类数据日志插入到`audit_log`数据审计表中,方便运维人员进行数据复原。 #### 运行说明(本例是十分精简的演示Demo,可自行将其中的代码移植到其它项目中使用) 1. 首先建立测试库,导入sql/audit_log.sql 2. 修改src/main/resources/jdbc.properties中的jdbc数据库连接字符串、账号、密码 3. 运行io.github.lopssh.mybatis.auditlog.AuditLogTest 类,并通过mybaits框架对任意表进行任意的增删改操作 4. 观察audit_log表的变化 #### 测试示例 > ![输入图片说明](https://images.gitee.com/uploads/images/2018/0820/203149_ca445e4e_1478767.png "屏幕截图.png") ![输入图片说明](https://images.gitee.com/uploads/images/2018/0820/202016_5ae56bc5_1478767.png "屏幕截图.png") #### audit_log(数据审计表)结构介绍 ``` > ID -- 本记录ID > > TableName -- 记录下的表名 > > ColumnName -- 记录下的列名 > > PrimaryKey -- 记录下的主键名 > > ParentID -- 父记录ID (例如:insert、delete、update语句 从第二个字段开始 会以第一个字段在本表的ID作为ParentID,以便于SQL分组) > > NewValue -- 该字段的新值 > > OldValue -- 该字段的旧值 > > Operation -- 记录下的动作(目前有:update、insert、delete) > > CreateTime -- 记录的创建时间 > > CreateClerk -- 操作人员ID(本例子默认为 -1) ```