【发布时间】:2016-10-26 02:06:18
【问题描述】:
简介
我正在做一个项目,遇到了一个奇怪的用例,也许 ActiveJDBC 不适合,我保证耐心,因为这个项目中的许多事情都不是我能控制的:
我有 10 到 15 个小型/中型数据库(每个约 30 个表,最多 40000 条记录),其中大多数共享一个由 15 个表组成的“核心”架构,但同时它们有一些针对每个数据库唯一的特定表,它们都由我无权访问的遗留系统维护。
目标
我们(我和一些同事)需要将数据集中在一种“复杂的数据仓库”中。不幸的是,出于更高的原因,我不能使用除 ActiveJDBC 之外的任何技术以及需要我们编写的所有其他技术(我知道这可以使用 MongoDB 和/或 Liquibase 更好地处理)
我们已经处理了数据库之间的连接,并且项目本身在很大程度上进展顺利。处理所有数据库共享的核心模式的程序部分已经“工作”了,但是我们在处理它们的唯一表时遇到了问题。
我通过在运行时进行的查询(也不是我的选择)从数据库中获取所有表名。我们需要将类的数量保持在最低限度
最后是我的问题
我可以创建一个通用/动态模型或类似的东西,可以在运行时保存来自查询的数据吗?类似:
Model a = Base.findall("select * from ?", TableName)
或
Model a = Model.fromTable(Tablename)
我知道以这种方式使用模型很奇怪,但如果我们能以这种方式获取表数据,那将大大简化我们的生活。
我们将主要使用这种模型来从表中获取“原始”数据并满足接口,因此现在无需担心每个表的关系。
提前致谢
@Edit:感谢 Igor 提供了这个很棒的工具!
我们(几乎)做到了!谢谢你。我们对“核心架构”使用了类似的方法,但您给了我们一些启发。
正如我所评论的:
我们需要像使用模型一样使用 Base.findall() 的结果,这可能吗?
【问题讨论】:
标签: java activejdbc