duxinglangzi
2022-09-06 ed3a1614384279b7d3a97e7411b649476a934ddb
提交 | 用户 | age
c83c1b 1 package com.duxinglangzi.canal.starter.mode;
D 2
3 import com.alibaba.otter.canal.protocol.CanalEntry;
4
5 import java.io.Serializable;
6
7 /**
8  * 监听事件的 返回信息, 主要将 CanalEntry 里不同层级的常用数据组装到同一层级使用.<p>
cf3e03 9  * entryHeader 是为了方便获取其他数据,比如: 获取日志文件名、日志文件偏移量等
c83c1b 10  *
D 11  * @author wuqiong 2022/8/15
12  */
13 public class CanalMessage implements Serializable {
14     private static final long serialVersionUID = 730485362580815032L;
15
16     /**
17      * 发生变化的 事件类型
18      */
19     private CanalEntry.EventType eventType;
20
21     /**
22      * 发生变化的数据
23      */
24     private CanalEntry.RowData rowData;
25
26     /**
27      * 头信息, 包含: sql执行时间、数据库日志文件名、数据库日志文件偏移量 等信息
28      */
29     private CanalEntry.Header entryHeader;
30
31     /**
32      * 构造返回数据信息
33      *
34      * @param entryHeader 头信息
35      * @param eventType   事件类型
36      * @param rowData     变化的数据
37      * @author wuqiong 2022/8/15 16:18
38      */
39     public CanalMessage(CanalEntry.Header entryHeader, CanalEntry.EventType eventType, CanalEntry.RowData rowData) {
40         this.entryHeader = entryHeader;
41         this.eventType = eventType;
42         this.rowData = rowData;
43     }
44
cf3e03 45     /**
D 46      * 数据库名
47      */
c83c1b 48     public String getDataBaseName() {
cf3e03 49         return getEntryHeader().getSchemaName();
c83c1b 50     }
D 51
cf3e03 52     /**
D 53      * 表名
54      */
c83c1b 55     public String getTableName() {
cf3e03 56         return getEntryHeader().getTableName();
c83c1b 57     }
D 58
59     public CanalEntry.EventType getEventType() {
60         return eventType;
61     }
62
63     public CanalEntry.RowData getRowData() {
64         return rowData;
65     }
66
67     public CanalEntry.Header getEntryHeader() {
68         return entryHeader;
69     }
70 }