Kasper Sørensen 在 eobjects.dk 上创建了一个叫做 MetaModel 的新的开源项目。该项目是一个通用的领域模型、查询引擎以及对不同类型数据存储的优化器,如关系数据库和一般文件。MetaModel 是一个 Java 库,提供了一个流动的、面向对象的接口以进行SQL 兼容的查询。
MetaModel 为“数据存储”领域提供了一个通用的领域模型。例如,该库提供了诸如 Table、Column、Query 以及 DataSet 这样的领域对象,它们可用来查询数据源,甚至还能构建或者调整数据存储的结构。该模型使得你可以通过 JDBC 创建并操纵 SQL 查询。它还提供了针对 CSV 和 Excel 文件的相同的查询能力。
MetaModel 的查询引擎完全是面向对象的。它允许我们使用 Java 对象进行查询进而代替了专有或者容易出错的语言。在创建查询时它还提供了一定程度的类型安全。
关于 MetaModel 库的有用性,Sørensen 说到:
它基于已被大家广为接受的标准和类型安全的查询语句,强制使用更好的方式与数据进行交互。该框架小巧且简单,但是很强大,这使得使用和学习起来都很简单。
该项目站点声明了 MetaModel 的总体目标就是提供一个 Java API,可以:
- 遍历和构建数据存储源的结构。
- 以类似 SQL 的方式执行数据存储中立的查询。
- 通过查询引擎提供不支持查询的数据存储。
- 支持 JDBC 数据库、CSV 文件及 Excel 表格。
- 将单独的查询分割为产生相同结果的多个查询,这对于重负载的情况可以进行性能优化和网格执行(grid execution)。
eobjects.dk 还提供了使用MetaModel 进行编程的webcast,展示了使用领域模型与不同的数据源(CSV 及MySQL DB)协同工作的基本内容。该webcast 的前半部分详细讲述了与数据存储交互的核心类DataContext 的使用。后半部分解释了如何使用库中的类来生成查询语句。
MetaModel 并不是 O/R 映射工具的等价物或者替代品。它提供了一种更加简单的方式无需直接使用 JDBC 就能与数据库交互。
查看英文原文: New Open Source project provides Object Oriented data access
评论