Java实现数据同步,并且判断操作是新增、修改还是删除

one_oragle 2015-01-08 04:49:10
筒子们,你们有谁做过这个吗? 连接客户的Oracle数据库,同步他们的数据,同步更新到自己公司的数据库,并且判断操作的数据是新增、修改还是删除
...全文
2582 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
钧铭 2019-01-29
  • 打赏
  • 举报
回复
学习了,谢谢
maradona1984 2019-01-29
  • 打赏
  • 举报
回复
市面上有oracle的binlog同步的产品的,这个侵入性最小,而且接近实时
如果目标数据库保存数据时会有个最后修改时间,倒是简单轻松
maradona1984 2019-01-29
  • 打赏
  • 举报
回复
引用 3 楼 Coder_D 的回复:
数据库新建一个DBNotify表

字段:tableName、propertyName、value、 operator

分别是表名、属性名、操作的值、操作类型(增删改自己定义)

公司这边根据这个表去同步客户的数据库

公司和客户之间的交互以及同步更新后的业务逻辑需要商量好

或者也可以用一些中间件传递消息

这个侵入性太强了,他们愿意这么搞你们也挺牛的
weixin_39644480 2019-01-28
  • 打赏
  • 举报
回复
新增一个字段用I/U/D代表就好了
开拓者Amadues 2019-01-28
  • 打赏
  • 举报
回复
如果对方的数据有创建或者更新的时间的话,每天把当天的数据拿过来跟自己这里的比就可以了。
如果对方的数据没有时间,那只能全部取过来,数据量很大时会很慢的。
我爱娃哈哈 2019-01-28
  • 打赏
  • 举报
回复
数据都同步到中间表,然后在中间表上加触发器就可以判断了啊
猿人林克 2015-01-14
  • 打赏
  • 举报
回复
再附上触发器的例子,这里就写个创建的,其他的自己搜搜,看你这需求用这种方式足以。 逐行插入test表之前触发:
CREATE OR REPLACE TRIGGER add8hour
  BEFORE INSERT ON test
  FOR EACH ROW
  DECLARE
  BEGIN
     --向日志表里插入,或者其他什么操作随你高兴
 END;
猿人林克 2015-01-13
  • 打赏
  • 举报
回复
1.要是你们用etl,据我所知各种etl工具都有这种日志功能,随便搞搞就行。 2.为你的表建触发器,根据创建、更新、删除做不同的操作。为何要比较呢,触发器就会帮你判断对数据的操作。
one_oragle 2015-01-13
  • 打赏
  • 举报
回复
引用 9 楼 OOCXC 的回复:
他们建立一个操作记录表,然后获取操作记录去更新你们的表.
客户不会这么好的。。。
  • 打赏
  • 举报
回复
他们的数据中有最后更新时间之类的字段就很容易做了,新增的和删除的可以直接通过minus主键字段来判断,修改的数据根据最后更新时间来判断。 如果没有最后更新时间的话,就很慢了,需要每条数据都需要去判断。
OOCXC 2015-01-08
  • 打赏
  • 举报
回复
他们建立一个操作记录表,然后获取操作记录去更新你们的表.
one_oragle 2015-01-08
  • 打赏
  • 举报
回复
引用 1 楼 one_oragle 的回复:
亲们 求解呀~
什么是要求的实时性? 要求每天凌晨开始同步
one_oragle 2015-01-08
  • 打赏
  • 举报
回复
数据量应该挺大的,性能方面还有要求、、、
one_oragle 2015-01-08
  • 打赏
  • 举报
回复
恩,数据结构会给我,但是是新增、修改还是删除需要我这边程序判断,通过查询客户那边的数据和我们库里面的现有数据对比,唉 就是单点登录的延伸
繁华终归落尽 2015-01-08
  • 打赏
  • 举报
回复
你要拿到他的数据结构,沟通是否有自增的字段,然后定时同步就行了,修改还是删除这个你怎么能知道,得问客户啊
Coder_D 2015-01-08
  • 打赏
  • 举报
回复
引用 3 楼 u012171905 的回复:
数据库新建一个DBNotify表 字段:tableName、propertyName、value、 operator 分别是表名、属性名、操作的值、操作类型(增删改自己定义) 公司这边根据这个表去同步客户的数据库 公司和客户之间的交互以及同步更新后的业务逻辑需要商量好 或者也可以用一些中间件传递消息
纯属脑补
Coder_D 2015-01-08
  • 打赏
  • 举报
回复
数据库新建一个DBNotify表 字段:tableName、propertyName、value、 operator 分别是表名、属性名、操作的值、操作类型(增删改自己定义) 公司这边根据这个表去同步客户的数据库 公司和客户之间的交互以及同步更新后的业务逻辑需要商量好 或者也可以用一些中间件传递消息
普凡 2015-01-08
  • 打赏
  • 举报
回复
1.数据量有多大? 2.要求的实时性?
one_oragle 2015-01-08
  • 打赏
  • 举报
回复
亲们 求解呀~

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧