diff --git a/deployer/src/main/resources/spring/default-instance.xml b/deployer/src/main/resources/spring/default-instance.xml
index 1abcd225..ae264eaf 100644
--- a/deployer/src/main/resources/spring/default-instance.xml
+++ b/deployer/src/main/resources/spring/default-instance.xml
@@ -15,22 +15,22 @@
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/deployer/src/main/resources/spring/file-instance.xml b/deployer/src/main/resources/spring/file-instance.xml
index 01ab4c56..21b943cd 100644
--- a/deployer/src/main/resources/spring/file-instance.xml
+++ b/deployer/src/main/resources/spring/file-instance.xml
@@ -15,22 +15,22 @@
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/deployer/src/main/resources/spring/group-instance.xml b/deployer/src/main/resources/spring/group-instance.xml
index 1acd03ed..1f0946de 100644
--- a/deployer/src/main/resources/spring/group-instance.xml
+++ b/deployer/src/main/resources/spring/group-instance.xml
@@ -15,22 +15,22 @@
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/deployer/src/main/resources/spring/memory-instance.xml b/deployer/src/main/resources/spring/memory-instance.xml
index b4d30d48..451ab995 100644
--- a/deployer/src/main/resources/spring/memory-instance.xml
+++ b/deployer/src/main/resources/spring/memory-instance.xml
@@ -15,22 +15,22 @@
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/deployer/src/main/resources/spring/tsdb/h2-tsdb.xml b/deployer/src/main/resources/spring/tsdb/h2-tsdb.xml
index 6c34241d..29c7a244 100644
--- a/deployer/src/main/resources/spring/tsdb/h2-tsdb.xml
+++ b/deployer/src/main/resources/spring/tsdb/h2-tsdb.xml
@@ -46,16 +46,16 @@
-
-
-
-
+
+
+
+
-
+
-
+
diff --git a/deployer/src/main/resources/spring/tsdb/mysql-tsdb.xml b/deployer/src/main/resources/spring/tsdb/mysql-tsdb.xml
index 87f407b3..72d82bf2 100644
--- a/deployer/src/main/resources/spring/tsdb/mysql-tsdb.xml
+++ b/deployer/src/main/resources/spring/tsdb/mysql-tsdb.xml
@@ -48,16 +48,16 @@
-
+
-
+
-
+
diff --git a/deployer/src/main/resources/spring/tsdb/sql-map/sqlmap-config.xml b/deployer/src/main/resources/spring/tsdb/sql-map/sqlmap-config.xml
index 26690703..c27d4631 100644
--- a/deployer/src/main/resources/spring/tsdb/sql-map/sqlmap-config.xml
+++ b/deployer/src/main/resources/spring/tsdb/sql-map/sqlmap-config.xml
@@ -1,8 +1,14 @@
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/deployer/src/main/resources/spring/tsdb/sql-map/sqlmap_history.xml b/deployer/src/main/resources/spring/tsdb/sql-map/sqlmap_history.xml
index 58957c28..206c7128 100644
--- a/deployer/src/main/resources/spring/tsdb/sql-map/sqlmap_history.xml
+++ b/deployer/src/main/resources/spring/tsdb/sql-map/sqlmap_history.xml
@@ -1,7 +1,6 @@
-
-
-
+
+
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/deployer/src/main/resources/spring/tsdb/sql-map/sqlmap_snapshot.xml b/deployer/src/main/resources/spring/tsdb/sql-map/sqlmap_snapshot.xml
index 2ee0f8f4..a4d14663 100644
--- a/deployer/src/main/resources/spring/tsdb/sql-map/sqlmap_snapshot.xml
+++ b/deployer/src/main/resources/spring/tsdb/sql-map/sqlmap_snapshot.xml
@@ -1,9 +1,6 @@
-
-
-
-
+
+
-
+
select
-
-
-
+
+
insert into meta_snapshot ()
- values(CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,#destination#,#binlogFile#,#binlogOffest#,#binlogMasterId#,#binlogTimestamp#,#data#,#extra#)
+ values(CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,#{destination},#{binlogFile},#{binlogOffest},#{binlogMasterId},#{binlogTimestamp},#{data},#{extra})
-
+
update meta_snapshot set gmt_modified=now(),
- binlog_file=#binlogFile#,binlog_offest=#binlogOffest#,binlog_master_id=#binlogMasterId#,binlog_timestamp=#binlogTimestamp#,data=#data#,extra=#extra#
- where destination=#destination# and binlog_timestamp=0
+ binlog_file=#{binlogFile},binlog_offest=#{binlogOffest},binlog_master_id=#{binlogMasterId},binlog_timestamp=#{binlogTimestamp},data=#{data},extra=#{extra}
+ where destination=#{destination} and binlog_timestamp=0
-
- delete from meta_snapshot
- where destination=#destination#
+
+ delete from meta_snapshot
+ where destination=#{destination}
-
+
0
+ where destination=#{destination} and binlog_timestamp < #{timestamp} and binlog_timestamp > 0
]]>
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/example/src/main/java/com/alibaba/otter/canal/example/SimpleCanalClientTest.java b/example/src/main/java/com/alibaba/otter/canal/example/SimpleCanalClientTest.java
index 089161f2..0603d32c 100644
--- a/example/src/main/java/com/alibaba/otter/canal/example/SimpleCanalClientTest.java
+++ b/example/src/main/java/com/alibaba/otter/canal/example/SimpleCanalClientTest.java
@@ -22,7 +22,7 @@ public class SimpleCanalClientTest extends AbstractCanalClientTest {
// 根据ip,直接创建链接,无HA的功能
String destination = "example";
String ip = AddressUtils.getHostIp();
- CanalConnector connector = CanalConnectors.newSingleConnector(new InetSocketAddress(ip, 11111),
+ CanalConnector connector = CanalConnectors.newSingleConnector(new InetSocketAddress("127.0.0.1", 11111),
destination,
"canal",
"canal");
diff --git a/instance/spring/src/test/resources/spring/default-instance.xml b/instance/spring/src/test/resources/spring/default-instance.xml
index 84a50e3d..d86ea04e 100644
--- a/instance/spring/src/test/resources/spring/default-instance.xml
+++ b/instance/spring/src/test/resources/spring/default-instance.xml
@@ -34,19 +34,19 @@
-
+
-
+
-
+
-
+
-
+
diff --git a/instance/spring/src/test/resources/spring/file-instance.xml b/instance/spring/src/test/resources/spring/file-instance.xml
index aa717ca3..ccf82931 100644
--- a/instance/spring/src/test/resources/spring/file-instance.xml
+++ b/instance/spring/src/test/resources/spring/file-instance.xml
@@ -34,19 +34,19 @@
-
+
-
+
-
+
-
+
-
+
diff --git a/instance/spring/src/test/resources/spring/group-instance.xml b/instance/spring/src/test/resources/spring/group-instance.xml
index 4dea968a..543396b2 100644
--- a/instance/spring/src/test/resources/spring/group-instance.xml
+++ b/instance/spring/src/test/resources/spring/group-instance.xml
@@ -34,19 +34,19 @@
-
+
-
+
-
+
-
+
-
+
diff --git a/instance/spring/src/test/resources/spring/memory-instance.xml b/instance/spring/src/test/resources/spring/memory-instance.xml
index f9e98475..f889c334 100644
--- a/instance/spring/src/test/resources/spring/memory-instance.xml
+++ b/instance/spring/src/test/resources/spring/memory-instance.xml
@@ -34,19 +34,19 @@
-
+
-
+
-
+
-
+
-
+
diff --git a/parse/pom.xml b/parse/pom.xml
index 437f703b..be2e4b5a 100644
--- a/parse/pom.xml
+++ b/parse/pom.xml
@@ -54,8 +54,12 @@
mysql-connector-java
- org.apache.ibatis
- ibatis-sqlmap
+ org.mybatis
+ mybatis-spring
+
+
+ org.mybatis
+ mybatis
com.h2database
diff --git a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaBaseDAO.java b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaBaseDAO.java
index 968e83b8..6a9bb7d0 100644
--- a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaBaseDAO.java
+++ b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaBaseDAO.java
@@ -9,14 +9,14 @@ import javax.sql.DataSource;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;
-import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
+import org.mybatis.spring.support.SqlSessionDaoSupport;
/**
* @author agapple 2017年10月14日 上午1:05:22
* @since 1.0.25
*/
@SuppressWarnings("deprecation")
-public class MetaBaseDAO extends SqlMapClientDaoSupport {
+public class MetaBaseDAO extends SqlSessionDaoSupport {
protected boolean isH2 = false;
@@ -24,7 +24,7 @@ public class MetaBaseDAO extends SqlMapClientDaoSupport {
Connection conn = null;
InputStream input = null;
try {
- DataSource dataSource = getDataSource();
+ DataSource dataSource = getSqlSessionFactory().getConfiguration().getEnvironment().getDataSource();
conn = dataSource.getConnection();
String name = "mysql";
isH2 = isH2(conn);
diff --git a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaHistoryDAO.java b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaHistoryDAO.java
index c214d88f..5ff5d660 100644
--- a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaHistoryDAO.java
+++ b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaHistoryDAO.java
@@ -15,7 +15,7 @@ import com.google.common.collect.Maps;
public class MetaHistoryDAO extends MetaBaseDAO {
public Long insert(MetaHistoryDO metaDO) {
- return (Long) getSqlMapClientTemplate().insert("meta_history.insert", metaDO);
+ return getSqlSession().getMapper(MetaHistoryMapper.class).insert(metaDO);
}
public List findByTimestamp(String destination, Long snapshotTimestamp, Long timestamp) {
@@ -23,13 +23,13 @@ public class MetaHistoryDAO extends MetaBaseDAO {
params.put("destination", destination);
params.put("snapshotTimestamp", snapshotTimestamp == null ? 0L : snapshotTimestamp);
params.put("timestamp", timestamp == null ? 0L : timestamp);
- return (List) getSqlMapClientTemplate().queryForList("meta_history.findByTimestamp", params);
+ return getSqlSession().getMapper(MetaHistoryMapper.class).findByTimestamp(params);
}
public Integer deleteByName(String destination) {
HashMap params = Maps.newHashMapWithExpectedSize(2);
params.put("destination", destination);
- return getSqlMapClientTemplate().delete("meta_history.deleteByName", params);
+ return getSqlSession().getMapper(MetaHistoryMapper.class).deleteByName(params);
}
/**
@@ -40,7 +40,7 @@ public class MetaHistoryDAO extends MetaBaseDAO {
long timestamp = System.currentTimeMillis() - interval * 1000;
params.put("timestamp", timestamp);
params.put("destination", destination);
- return getSqlMapClientTemplate().delete("meta_history.deleteByTimestamp", params);
+ return getSqlSession().getMapper(MetaHistoryMapper.class).deleteByTimestamp(params);
}
protected void initDao() throws Exception {
diff --git a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaHistoryMapper.java b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaHistoryMapper.java
new file mode 100644
index 00000000..f276b5fb
--- /dev/null
+++ b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaHistoryMapper.java
@@ -0,0 +1,15 @@
+package com.alibaba.otter.canal.parse.inbound.mysql.tsdb.dao;
+
+import java.util.List;
+import java.util.Map;
+
+public interface MetaHistoryMapper {
+
+ List findByTimestamp(Map map);
+
+ long insert(MetaHistoryDO metaHistoryDO);
+
+ int deleteByName(Map map);
+
+ int deleteByTimestamp(Map map);
+}
diff --git a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaSnapshotDAO.java b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaSnapshotDAO.java
index ff79b107..259a716e 100644
--- a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaSnapshotDAO.java
+++ b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaSnapshotDAO.java
@@ -6,7 +6,7 @@ import com.google.common.collect.Maps;
/**
* canal数据的存储
- *
+ *
* @author wanshao 2017年7月27日 下午10:51:55
* @since 3.2.5
*/
@@ -14,25 +14,24 @@ import com.google.common.collect.Maps;
public class MetaSnapshotDAO extends MetaBaseDAO {
public Long insert(MetaSnapshotDO snapshotDO) {
- return (Long) getSqlMapClientTemplate().insert("meta_snapshot.insert", snapshotDO);
+ return getSqlSession().getMapper(MetaSnapshotMapper.class).insert(snapshotDO);
}
public Long update(MetaSnapshotDO snapshotDO) {
- return (Long) getSqlMapClientTemplate().insert("meta_snapshot.update", snapshotDO);
+ return getSqlSession().getMapper(MetaSnapshotMapper.class).update(snapshotDO);
}
public MetaSnapshotDO findByTimestamp(String destination, Long timestamp) {
HashMap params = Maps.newHashMapWithExpectedSize(2);
params.put("timestamp", timestamp == null ? 0L : timestamp);
params.put("destination", destination);
-
- return (MetaSnapshotDO) getSqlMapClientTemplate().queryForObject("meta_snapshot.findByTimestamp", params);
+ return getSqlSession().getMapper(MetaSnapshotMapper.class).findByTimestamp(params);
}
public Integer deleteByName(String destination) {
HashMap params = Maps.newHashMapWithExpectedSize(2);
params.put("destination", destination);
- return getSqlMapClientTemplate().delete("meta_snapshot.deleteByName", params);
+ return getSqlSession().getMapper(MetaSnapshotMapper.class).deleteByName(params);
}
/**
@@ -43,7 +42,7 @@ public class MetaSnapshotDAO extends MetaBaseDAO {
long timestamp = System.currentTimeMillis() - interval * 1000;
params.put("timestamp", timestamp);
params.put("destination", destination);
- return getSqlMapClientTemplate().delete("meta_snapshot.deleteByTimestamp", params);
+ return getSqlSession().getMapper(MetaSnapshotMapper.class).deleteByTimestamp(params);
}
protected void initDao() throws Exception {
diff --git a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaSnapshotMapper.java b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaSnapshotMapper.java
new file mode 100644
index 00000000..4b1c41fb
--- /dev/null
+++ b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/dao/MetaSnapshotMapper.java
@@ -0,0 +1,16 @@
+package com.alibaba.otter.canal.parse.inbound.mysql.tsdb.dao;
+
+import java.util.Map;
+
+public interface MetaSnapshotMapper {
+
+ MetaSnapshotDO findByTimestamp(Map map);
+
+ long insert(MetaSnapshotDO metaSnapshotDO);
+
+ long update(MetaSnapshotDO metaSnapshotDO);
+
+ int deleteByName(Map map);
+
+ int deleteByTimestamp(Map map);
+}
diff --git a/parse/src/test/resources/tsdb/derby-tsdb.xml b/parse/src/test/resources/tsdb/derby-tsdb.xml
index 4ce4dcbf..e1459daa 100644
--- a/parse/src/test/resources/tsdb/derby-tsdb.xml
+++ b/parse/src/test/resources/tsdb/derby-tsdb.xml
@@ -29,16 +29,16 @@
-
+
-
+
-
+
diff --git a/parse/src/test/resources/tsdb/h2-tsdb.xml b/parse/src/test/resources/tsdb/h2-tsdb.xml
index dcb6bc47..aaeb0d3a 100644
--- a/parse/src/test/resources/tsdb/h2-tsdb.xml
+++ b/parse/src/test/resources/tsdb/h2-tsdb.xml
@@ -29,16 +29,16 @@
-
+
-
+
-
+
diff --git a/parse/src/test/resources/tsdb/mysql-tsdb.xml b/parse/src/test/resources/tsdb/mysql-tsdb.xml
index 44f97203..6d53197c 100644
--- a/parse/src/test/resources/tsdb/mysql-tsdb.xml
+++ b/parse/src/test/resources/tsdb/mysql-tsdb.xml
@@ -32,16 +32,16 @@
-
+
-
+
-
+
diff --git a/parse/src/test/resources/tsdb/sql-map/sqlmap-config.xml b/parse/src/test/resources/tsdb/sql-map/sqlmap-config.xml
index 2485a35b..3b6f665d 100644
--- a/parse/src/test/resources/tsdb/sql-map/sqlmap-config.xml
+++ b/parse/src/test/resources/tsdb/sql-map/sqlmap-config.xml
@@ -1,8 +1,14 @@
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/parse/src/test/resources/tsdb/sql-map/sqlmap_history.xml b/parse/src/test/resources/tsdb/sql-map/sqlmap_history.xml
index 58957c28..f0a78099 100644
--- a/parse/src/test/resources/tsdb/sql-map/sqlmap_history.xml
+++ b/parse/src/test/resources/tsdb/sql-map/sqlmap_history.xml
@@ -1,7 +1,6 @@
-
-
-
+
+
-
+
select
from meta_history a
= #snapshotTimestamp# and binlog_timestamp <= #timestamp#
+ where destination = #{destination} and binlog_timestamp >= #{snapshotTimestamp} and binlog_timestamp <= #{timestamp}
order by binlog_timestamp asc,id asc
]]>
-
+
insert into meta_history ()
- values(CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,#destination#,#binlogFile#,#binlogOffest#,#binlogMasterId#,#binlogTimestamp#,#useSchema#,#sqlSchema#,#sqlTable#,#sqlText#,#sqlType#,#extra#)
+ values(CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,#{destination},#{binlogFile},#{binlogOffest},#{binlogMasterId},#{binlogTimestamp},#{useSchema},#{sqlSchema},#{sqlTable},#{sqlText},#{sqlType},#{extra})
-
-
- delete from meta_history
- where destination=#destination#
+
+
+ delete from meta_history
+ where destination=#{destination}
-
+
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/parse/src/test/resources/tsdb/sql-map/sqlmap_snapshot.xml b/parse/src/test/resources/tsdb/sql-map/sqlmap_snapshot.xml
index 60827c6c..e4813503 100644
--- a/parse/src/test/resources/tsdb/sql-map/sqlmap_snapshot.xml
+++ b/parse/src/test/resources/tsdb/sql-map/sqlmap_snapshot.xml
@@ -1,9 +1,6 @@
-
-
-
-
+
+
-
- select
-
+ select
+
-
-
- select * FROM (
- select ROW_NUMBER() OVER() AS rownum,
-
-
-
+
insert into meta_snapshot ()
- values(CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,#destination#,#binlogFile#,#binlogOffest#,#binlogMasterId#,#binlogTimestamp#,#data#,#extra#)
+ values(CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,#{destination},#{binlogFile},#{binlogOffest},#{binlogMasterId},#{binlogTimestamp},#{data},#{extra})
-
+
update meta_snapshot set gmt_modified=now(),
- binlog_file=#binlogFile#,binlog_offest=#binlogOffest#,binlog_master_id=#binlogMasterId#,binlog_timestamp=#binlogTimestamp#,data=#data#,extra=#extra#
- where destination=#destination# and binlog_timestamp=0
+ binlog_file=#{binlogFile},binlog_offest=#{binlogOffest},binlog_master_id=#{binlogMasterId},binlog_timestamp=#{binlogTimestamp},data=#{data},extra=#{extra}
+ where destination=#{destination} and binlog_timestamp=0
-
- delete from meta_snapshot
- where destination=#destination#
+
+ delete from meta_snapshot
+ where destination=#{destination}
-
+
0
+ where destination=#{destination} and binlog_timestamp < #{timestamp} and binlog_timestamp > 0
]]>
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index b06b033f..3805c8d3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -48,7 +48,7 @@
central
- http://repo1.maven.org/maven2
+ https://repo1.maven.org/maven2
true
@@ -99,7 +99,7 @@
1.8
UTF-8
true
- 3.2.18.RELEASE
+ 5.0.5.RELEASE
0.8.3
2.22.1
-server -Xms512m -Xmx1024m -Dfile.encoding=UTF-8
@@ -253,9 +253,14 @@
3.6.1
- org.apache.ibatis
- ibatis-sqlmap
- 2.3.4.726
+ org.mybatis
+ mybatis-spring
+ 2.0.4
+
+
+ org.mybatis
+ mybatis
+ 3.5.4
com.alibaba