[java数据库同步]Java之——基于java开发的功能强大、配置灵活的数据库之间的同步工具

转载请注明出处:https://blog.csdn.net/l1028386804/article/details/80341251

基于java开发的功能强大、配置灵活的数据库之间的同步工具,和数据产生器一样,均是前段时间因为项目需要编写的小工具,在实际应用场景中,我们经常需要定期将一个数据库的数据同步到另外一个数据库中,常见的一种做法是将源数据库的数据dump为sql文件,然后到目标数据库执行sql文件完成数据库的导入,但是这种方法至少存在以下问题:

需要手工操作,效率低当涉及数据表较多时,容易遗漏、出错如果要定期同步,操作人容易忘记难以应付频繁变更数据表或者字段

针对以上存在的问题,将珍贵人力从这种重复、无意义的工作中解脱出来,特意开发这个小工具,其中主要配置主要在jobs.xml中完成。

项目整体结构如下图:

MySQL——>MySQLSQLServer——>SQLServerMySQL——>SQLServerSQLServer——>MySQL

注:——>左边的代码源数据库,——>右边代表的是目标数据库,具体解释如下:

支持MySQL向MySQL同步数据支持SQLServer向SQLServer同步数据支持MySQL向SQLServer同步数据支持SQLServer向MySQL同步数据

1、创建数据库信息类DBInfo

这个类主要是存储一些数据库相关的信息,比如数据库驱动、数据库连接、用户名和密码等,具体见如下代码:

2、创建定时同步任务信息类JobInfo

这个类主要是存储一些与定时任务相关的基本信息,具体见如下代码:

3、创建字符串工具类SpringUtils

这个类主要是为字符串的操作提供统一的工具支持,在这个小工具中,本类主要的作用就是判断给定的字符串是否为空,具体见如下代码:

4、创建工具类Tool

此类的主要作用就是随机生成一个给定长度的字符串,具体见如下代码:

5、定义常量类Constants

这个类中主要为此工程提供常量信息,标识数据库的类型,具体代码如下:

以上五个类是我们实现数据库数据同步的基础支持类,创建完以上四个类之后,我们就开始编写具体的同步业务了。

6、创建同步数据库的抽象接口DBSync

这个接口主要是定义了同步数据库的方法,具体代码如下:

7、创建数据库同步抽象类AbstractDBSync

这个类主要是抽象同步业务,目前主要提供的方法为:消除从job.xml文件中读取出的数据存在的空格,具体代码如下:

8、创建MySQL数据库同步类MySQLSync

此类主要实现的是MySQL数据库之前的同步操作,具体业务见如下代码:

9、创建SQLServer数据库同步类SQLServerSync

这个类主要实现了SQLServer数据库之前的数据同步操作,具体业务见如下代码:

10、创建同步对象的工厂类DBSyncFactory

这里,我们以工厂的形式来创建MySQLSync类或者SQLServerSync类,具体创建哪个类是根据传递的数据库类型决定的,具体见如下代码:

11、创建同步数据库任务的具体实现类JobTask

这个类实现org.quartz.Job接口,主要实现定时任务同步数据库,具体见如下代码:

12、创建同步数据库资源的整合类DBSyncBuilder

这个类的主要作用是整合本工程的所有资源,比如:读取相关的配置文件,通过工厂类DBSyncFactory实例化具体的同步对象,启动定时任务,同步数据库数据等。具体见如下代码:

13、创建工程的入口类Main

此类为启动工程的入口类,具体见如下代码:

写完具体的业务代码后,我们就要完善相关的配置文件信息了。

1、创建配置文件jobs.xml

这个文件是我们整个工程中最核心的配置文件,在这个文件中定义了同步的源数据库信息和目标数据库信息,同步任务等,同时定义了同步数据的数据表和数据字段等信息,具体参见如下配置

2、创建log4j.properties

这个就不多说了,具体如下:

3、创建pom.xml

这个文件定义了我们的项目结构和依赖,具体如下:

至此,我们就实现了基于java开发的功能强大、配置灵活的数据库之间的同步工具,大家可以根据具体需求修改job.xml中的相关配置信息即可实现数据库之前的同步。

大家可以到链接https://download.csdn.net/download/l1028386804/10418915下载基于java开发的功能强大、配置灵活的数据库之间的同步工具完整源代码

猜你喜欢

转载自www.cnblogs.com/sqlserver-mysql/p/12723021.html
今日推荐