Skip to content

Commit 1d1cb68

Browse files
committed
format code
1 parent 98eca8a commit 1d1cb68

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+288
-182
lines changed

README.md

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -72,14 +72,16 @@ spring.datasource.password=12345678
7272
实现并注册 `DBEventPusher` 接口,接收结构化的数据库变更事件:
7373

7474
```java
75-
import com.codingapi.dbstream.DBStreamContext;
76-
import com.codingapi.dbstream.stream.DBEvent;
77-
import com.codingapi.dbstream.stream.DBEventPusher;
75+
76+
import com.codingapi.dbstream.event.DBEvent;
77+
import com.codingapi.dbstream.event.DBEventPusher;
7878

7979
// 在应用启动时注册事件推送器(如 @PostConstruct、@Configuration 等)
80-
DBStreamContext.getInstance().addEventPusher(new DBEventPusher() {
80+
DBStreamContext.getInstance().
81+
82+
addEventPusher(new DBEventPusher() {
8183
@Override
82-
public void push(List<DBEvent> events) {
84+
public void push (List < DBEvent > events) {
8385
// 处理数据库变更事件
8486
for (DBEvent event : events) {
8587
System.out.println("表名: " + event.getTableName());
@@ -88,7 +90,7 @@ DBStreamContext.getInstance().addEventPusher(new DBEventPusher() {
8890
System.out.println("主键: " + event.getPrimaryKeys());
8991
System.out.println("事务标识: " + event.getTransactionKey());
9092
System.out.println("时间戳: " + event.getTimestamp());
91-
93+
9294
// 可以对接消息队列(如 Kafka、RocketMQ 等)
9395
// kafkaProducer.send(event);
9496
}
@@ -139,17 +141,21 @@ import com.codingapi.dbstream.scanner.DbTable;
139141
140142
import java.util.Properties;
141143
142-
public class DefaultDBTableSupportProvider implements DBTableSupportProvider {
144+
/**
145+
* 默认DB事件判断类
146+
* 规则为满足条件的全部支持
147+
*/
148+
public class DefaultDBEventSupporter implements DBEventSupporter {
143149
144150
@Override
145151
public boolean support(Properties info, DbTable dbTable) {
146-
// 所有表都会监听
147-
return true;
152+
return true;
148153
}
149154
}
150155
156+
151157
// 添加 SQL 表执行判断
152-
DBStreamContext.getInstance().setDbTableSupportProvider(new DefaultDBTableSupportProvider());
158+
DBStreamContext.getInstance().setDbEventSupporter(new DefaultDBEventSupporter());
153159
```
154160

155161
根据表名等信息来决定是否进行数据事件解析。仅当返回true的才会进行事件推送。DefaultDBTableSupportProvider为默认的实现机制。
@@ -207,7 +213,7 @@ DBStreamContext.getInstance().addListener(SQLExecuteListener listener);
207213

208214
```java
209215
// 添加 SQL 表执行判断
210-
DBStreamContext.getInstance().setDbTableSupportProvider(DBTableSupportProvider dbTableSupportProvider);
216+
DBStreamContext.getInstance().setDbEventSupporter(DBEventSupporter dbEventSupporter);
211217
```
212218

213219
#### 元数据管理

src/main/java/com/codingapi/dbstream/DBStreamContext.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
import com.codingapi.dbstream.interceptor.SQLExecuteListenerContext;
44
import com.codingapi.dbstream.listener.SQLExecuteListener;
5-
import com.codingapi.dbstream.provider.DBTableSupportProvider;
6-
import com.codingapi.dbstream.provider.DefaultDBTableSupportProvider;
5+
import com.codingapi.dbstream.supporter.DBEventSupporter;
6+
import com.codingapi.dbstream.supporter.DefaultDBEventSupporter;
77
import com.codingapi.dbstream.scanner.DBMetaContext;
88
import com.codingapi.dbstream.scanner.DBMetaData;
99
import com.codingapi.dbstream.scanner.DbTable;
10-
import com.codingapi.dbstream.stream.DBEventContext;
11-
import com.codingapi.dbstream.stream.DBEventPusher;
10+
import com.codingapi.dbstream.event.DBEventContext;
11+
import com.codingapi.dbstream.event.DBEventPusher;
1212
import lombok.Getter;
1313
import lombok.Setter;
1414

@@ -24,7 +24,7 @@ public class DBStreamContext {
2424
private final static DBStreamContext instance = new DBStreamContext();
2525

2626
@Setter
27-
private DBTableSupportProvider dbTableSupportProvider;
27+
private DBEventSupporter dbEventSupporter;
2828

2929

3030
private DBStreamContext() {
@@ -48,11 +48,11 @@ public void addListener(SQLExecuteListener sqlExecuteListener) {
4848
* @return 是否支持
4949
*/
5050
public boolean support(Properties info, DbTable dbTable) {
51-
if (dbTableSupportProvider == null) {
52-
this.dbTableSupportProvider = new DefaultDBTableSupportProvider();
51+
if (dbEventSupporter == null) {
52+
this.dbEventSupporter = new DefaultDBEventSupporter();
5353
}
5454
if (dbTable.hasColumns() && dbTable.hasPrimaryKeys()) {
55-
return dbTableSupportProvider.support(info, dbTable);
55+
return dbEventSupporter.support(info, dbTable);
5656
} else {
5757
return false;
5858
}

src/main/java/com/codingapi/dbstream/driver/DBStreamProxyDriver.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
package com.codingapi.dbstream.driver;
22

33
import com.codingapi.dbstream.interceptor.SQLExecuteListenerContext;
4-
import com.codingapi.dbstream.listener.stream.SQLDeleteExecuteListener;
5-
import com.codingapi.dbstream.listener.stream.SQLInsertExecuteListener;
6-
import com.codingapi.dbstream.listener.stream.SQLUpdateExecuteListener;
4+
import com.codingapi.dbstream.listener.dbevent.SQLDeleteExecuteListener;
5+
import com.codingapi.dbstream.listener.dbevent.SQLInsertExecuteListener;
6+
import com.codingapi.dbstream.listener.dbevent.SQLUpdateExecuteListener;
77
import com.codingapi.dbstream.proxy.ConnectionProxy;
88
import com.codingapi.dbstream.scanner.DBMetaContext;
99
import com.codingapi.dbstream.scanner.DBMetaData;
1010
import com.codingapi.dbstream.scanner.DBScanner;
11-
import com.codingapi.dbstream.utils.JDBCPropertyUtils;
11+
import com.codingapi.dbstream.utils.JdbcPropertyUtils;
1212

1313
import java.sql.*;
1414
import java.util.Enumeration;
@@ -103,7 +103,7 @@ public Connection connect(String url, Properties info) throws SQLException {
103103
throw new SQLException("Driver returned null connection for URL: " + url);
104104
}
105105
info.setProperty(DBMetaData.KEY_JDBC_URL, url);
106-
String jdbcKey = JDBCPropertyUtils.getJdbcKey(info,connection.getSchema());
106+
String jdbcKey = JdbcPropertyUtils.getOrGenerateJdbcKey(info, connection.getSchema());
107107
DBMetaData metaData = DBMetaContext.getInstance().getMetaData(jdbcKey);
108108
if (metaData == null) {
109109
DBScanner scanner = new DBScanner(connection, info);

src/main/java/com/codingapi/dbstream/stream/DBEvent.java renamed to src/main/java/com/codingapi/dbstream/event/DBEvent.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.codingapi.dbstream.stream;
1+
package com.codingapi.dbstream.event;
22

33
import lombok.Getter;
44
import lombok.Setter;
@@ -9,6 +9,9 @@
99
import java.util.Map;
1010

1111

12+
/**
13+
* 数据变更事件
14+
*/
1215
@Getter
1316
public class DBEvent {
1417

@@ -70,7 +73,7 @@ public String toString() {
7073
'}';
7174
}
7275

73-
public DBEvent(String jdbcUrl,String jdbcKey, String tableName, EventType type) {
76+
public DBEvent(String jdbcUrl, String jdbcKey, String tableName, EventType type) {
7477
this.jdbcKey = jdbcKey;
7578
this.jdbcUrl = jdbcUrl;
7679
this.data = new HashMap<>();
@@ -89,14 +92,14 @@ void setTransactionKey(String transactionKey) {
8992
}
9093

9194
public void addPrimaryKey(String primaryKey) {
92-
if(!this.primaryKeys.contains(primaryKey)) {
95+
if (!this.primaryKeys.contains(primaryKey)) {
9396
this.primaryKeys.add(primaryKey);
9497
}
9598
}
9699

97100

98-
public boolean hasPrimaryKeys(){
99-
return this.primaryKeys!=null && !this.primaryKeys.isEmpty();
101+
public boolean hasPrimaryKeys() {
102+
return this.primaryKeys != null && !this.primaryKeys.isEmpty();
100103
}
101104

102105
}

src/main/java/com/codingapi/dbstream/stream/DBEventContext.java renamed to src/main/java/com/codingapi/dbstream/event/DBEventContext.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
1-
package com.codingapi.dbstream.stream;
1+
package com.codingapi.dbstream.event;
22

33
import lombok.Getter;
44

55
import java.util.List;
66
import java.util.concurrent.CopyOnWriteArrayList;
77

8+
/**
9+
* 事件控制上下文对象
10+
*/
811
public class DBEventContext {
912

1013
private final List<DBEventPusher> pushers = new CopyOnWriteArrayList<>();
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.codingapi.dbstream.event;
2+
3+
import java.util.List;
4+
5+
/**
6+
* 事件推送者
7+
*/
8+
public interface DBEventPusher {
9+
10+
/**
11+
* 推送事件
12+
*/
13+
void push(List<DBEvent> events);
14+
15+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.codingapi.dbstream.event;
2+
3+
import java.util.List;
4+
5+
/**
6+
* 默认事件推送者
7+
* 仅执行事件打印
8+
*/
9+
public class DefaultDBEventPusher implements DBEventPusher {
10+
11+
@Override
12+
public void push(List<DBEvent> events) {
13+
System.out.println("<=== DBStream DBEvent Total " + events.size() + " ===> ");
14+
for (DBEvent event : events) {
15+
System.out.println(event);
16+
}
17+
}
18+
}

src/main/java/com/codingapi/dbstream/stream/EventType.java renamed to src/main/java/com/codingapi/dbstream/event/EventType.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1-
package com.codingapi.dbstream.stream;
1+
package com.codingapi.dbstream.event;
22

3+
/**
4+
* 事件类型
5+
*/
36
public enum EventType {
47
INSERT,
58
UPDATE,

src/main/java/com/codingapi/dbstream/stream/TransactionEventPools.java renamed to src/main/java/com/codingapi/dbstream/event/TransactionEventPools.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.codingapi.dbstream.stream;
1+
package com.codingapi.dbstream.event;
22

33
import lombok.Getter;
44

@@ -21,15 +21,24 @@ private TransactionEventPools() {
2121
}
2222

2323

24+
/**
25+
* 自动提交模式设置
26+
*/
2427
public void setAutoCommit(boolean autoCommit) {
2528
autoMode.set(autoCommit);
2629
}
2730

31+
/**
32+
* 是否自动提交
33+
*/
2834
public boolean isAutoCommit() {
2935
return autoMode.get() != null && autoMode.get();
3036
}
3137

3238

39+
/**
40+
* 添加事务事件
41+
*/
3342
public void addEvents(String transactionKey, List<DBEvent> events) {
3443
List<DBEvent> currentEvents = pools.get();
3544
if (currentEvents == null) {

src/main/java/com/codingapi/dbstream/interceptor/SQLExecuteParam.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public class SQLExecuteParam {
1515
* SQL参数,integer index模式
1616
*/
1717
@Getter
18-
private final Map<Integer,Object> indexParams;
18+
private final Map<Integer, Object> indexParams;
1919
/**
2020
* SQL参数,string key 模型
2121
*/
@@ -58,23 +58,24 @@ public void setParam(int index, Object value) {
5858
/**
5959
* 清理参数
6060
*/
61-
public void cleanParams(){
61+
public void cleanParams() {
6262
this.indexParams.clear();
6363
this.mapParams.clear();
6464
}
6565

6666
/**
6767
* 获取参数列表
68+
*
6869
* @return List
6970
*/
70-
public List<Object> getListParams(){
71+
public List<Object> getListParams() {
7172
List<Object> list = new ArrayList<>();
7273
if (indexParams.isEmpty()) {
7374
return list;
7475
}
7576
List<Integer> keys = new ArrayList<>(indexParams.keySet());
7677
Collections.sort(keys);
77-
for(Integer key: keys){
78+
for (Integer key : keys) {
7879
list.add(indexParams.get(key));
7980
}
8081
return list;

0 commit comments

Comments
 (0)