项目要求是这样的:
数据库中有几十个表,现在我要给其中大约一半的表增加两个字段,一个最后修改时间 LAST_CHANGE_TIME 和同步状态 SYNC_STATUS(0 或 1 同步过后变为 1).现在要求这些表每进行插入跟新操作,就同步更新同条记录的最后修改时间 LAST_CHANGE_TIME 和同步状态 SYNC_STATUS 变为 0.
因为这是一个老项目,所以其他部分的增删改查都已经写好了.但公司不让我对原代码进行修改,而且也不能用触发器进行同步的修改操作.这就是我烦躁的原因.
公司给出的方案是用 druid 的 filter 来操作,具体没有写.....
然后我就尝试改写 druid 的 filter 里的 statementExecuteAfter 动态获取表名再进行修改操作,但是操作后发现,这种改写不能动态引入主键 ID 值来针对一条数据(我在外部定义可变 ID 进行修改,然后在重写的方法里引入,然而这个 ID 不管怎么改变,重写的方法里的 ID 都只会是第一个值).废了,不知道有没有大佬知道 druid 有什么针对这种的解决方案.....
也尝试过 AOP 来解决,但是这些包扫描是个大问题,因为这个数据库可能有上百个表,而我这里只要修改不到二分之一的表而已,即使扫描全部,joinpointer 倒是可以获取传入的修改条件即 ID,但我却不知道怎么获取此次操作针对的是哪个表? 所以也陷入僵局...
我很菜,这种需求我各种搜索也没找到解决的方法....求各位大佬帮忙看看怎么解决,给个思路,即使不是 druid 的 fiter 方案也好啊...我快被逼疯了
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.