duxinglangzi
2022-08-15 c83c1b4ee7ff9c01a7a67855863c281589f39c72
提交 | 用户 | 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>
9  * headers 是为了方便获取其他数据,比如
10  *
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 String dataBaseName;
20
21     /**
22      * 表名
23      */
24     private String tableName;
25
26     /**
27      * 发生变化的 事件类型
28      */
29     private CanalEntry.EventType eventType;
30
31     /**
32      * 发生变化的数据
33      */
34     private CanalEntry.RowData rowData;
35
36     /**
37      * 头信息, 包含: sql执行时间、数据库日志文件名、数据库日志文件偏移量 等信息
38      */
39     private CanalEntry.Header entryHeader;
40
41     /**
42      * 构造返回数据信息
43      *
44      * @param entryHeader 头信息
45      * @param eventType   事件类型
46      * @param rowData     变化的数据
47      * @author wuqiong 2022/8/15 16:18
48      */
49     public CanalMessage(CanalEntry.Header entryHeader, CanalEntry.EventType eventType, CanalEntry.RowData rowData) {
50         this.entryHeader = entryHeader;
51         this.eventType = eventType;
52         this.rowData = rowData;
53         this.dataBaseName = getEntryHeader().getSchemaName();
54         this.tableName = getEntryHeader().getTableName();
55     }
56
57     public String getDataBaseName() {
58         return dataBaseName;
59     }
60
61     public String getTableName() {
62         return tableName;
63     }
64
65     public CanalEntry.EventType getEventType() {
66         return eventType;
67     }
68
69     public CanalEntry.RowData getRowData() {
70         return rowData;
71     }
72
73     public CanalEntry.Header getEntryHeader() {
74         return entryHeader;
75     }
76 }