Score
0
Watch 23 Star 51 Fork 15

ghsea / dbtracerJava

Create your Gitee Account
Explore and code with more than 5 million developers,Free private repositories !:)
Sign up
This repository doesn't specify license. Without author's permission, this code is only for learning and cannot be used for other purposes.
Clone or download
README.md 1.17 KB
Copy Edit Web IDE Raw Blame History
ghsea authored 2017-08-11 21:58 . sample工程
考虑以下场景
  • 在后台业务系统中,涉及到多人使用同一些功能的时候,可能会有人错误的修改了某些数据,需要追查数据是谁修改的
  • 需要查看数据的所有历史修改轨迹

对于这个问题,常规做法是为每一个表都新建一个Log表,通过触发器或者业务代码记录数据变更前后的两条记录,最后再汇总两条记录生成一个对照。

dbtracer这个小工具正是为了自动化地满足以上业务场景的需求而开发。它最终生成像下面这样的轨迹记录: 字段名:{旧值}--->{新值},例如:
用户表更新: 用户名:{gogogo}--->{comecomecome},地址:{武汉}--->{上海}

处理过程如下:

  • 使用mybatis插件机制拦截SQL的执行
  • 使用druid解析拦截下的Update SQL,并生成相同查询条件的Select SQL去查询数据作为变更前的值
  • 执行Update SQL
  • 解析该表的XML配置,生成字段英文与中文意义间的映射.以入参的Update SQL参数作为变更后的值,以查询出的值作为变更前的值,生成变更过的字段前后的对照关系并写入数据库表

*********目前代码还未完成

Comment ( 0 )

Sign in for post a comment