我有一个用例,我需要从文件中读取行,使用引擎对其进行转换,然后将输出写入数据库(可以配置)。虽然我可以编写自己的查询构建器,但我很想知道是否已经有可用的解决方案(库)。
我在网上搜索并可以找到 jOOQ 库,但它看起来是类型安全的并且具有代码生成工具,因此可能适合静态数据库模式。在我拥有数据库的用例中,可以动态配置元数据,并以编程方式读取元数据并使其可用于写入目的(因此可以使用表列表,用户可以选择要写入的列和插入脚本这些列需要动态创建)。
有没有可以帮助我解决用例的库?
我有一个用例,我需要从文件中读取行,使用引擎对其进行转换,然后将输出写入数据库(可以配置)。虽然我可以编写自己的查询构建器,但我很想知道是否已经有可用的解决方案(库)。
我在网上搜索并可以找到 jOOQ 库,但它看起来是类型安全的并且具有代码生成工具,因此可能适合静态数据库模式。在我拥有数据库的用例中,可以动态配置元数据,并以编程方式读取元数据并使其可用于写入目的(因此可以使用表列表,用户可以选择要写入的列和插入脚本这些列需要动态创建)。
有没有可以帮助我解决用例的库?
如果我理解正确,您需要查询数据库结构,通过 GUI 显示结果并让用户将数据从文件映射到该结构?
假设是这种情况,您不是在寻找“库”,而是在寻找ETL工具。
或者,如果您打算自己编写一些东西,那么(非常)基本的方法是:
Connection.getMetaData()
. 驱动程序之间的确切用法可能会有所不同,因此您需要创建一个满足您需求的抽象层 - 我假设您只是对这里的表结构感兴趣。我的建议是,获得一个ETL工具,这听起来像是一个简单的问题,但它充满了特质——即使是 80% 的解决方案也将是艰难且耗时的。
jOOQ(您在问题中引用的库)可以在不生成代码的情况下使用,如 jOOQ 手册中所示:
搜索用户组时,您会发现其他用户以您想要的方式利用 jOOQ
您需要做的设置是:
读取行
将每一行构建成一个对象
将上述对象转换为目标对象
将目标对象插入数据库
在以上 4 个步骤中,您唯一需要做的就是第 3 步。
为了上述目的,您可以使用Transmorph、EZMorph、Commons-BeanUtils、Dozer等。