我有以下问题:我们的程序运行在几个不同的数据库上,因此在编译时确切的数据库结构是未知的。我们现在正在寻找一个库,它允许我们构建查询对象,可以将其转换为几种 SQL 方言,并为我们提供一个简单的查询字符串。
我们搜索类似于常规 ORM 库(例如 Hibernate)的内容。我们已经研究了其中的一些,但似乎除了表和列之外的所有它们都在编译时定义为常规 java 类。如果我在这一点上错了,请纠正我。
ORM 方法与我们的方法之间的基本区别是,我们不想将 java 对象存储在数据库中,而是将查询生成为 java 对象。为了使我的观点更清楚,我将向您展示一些示例代码,这些代码应该可由库执行。
QueryObject query = new QueryObject();
query.addSelectedTable("customers");
query.addSelectedColumn("customerID");
query.addSelectedColumn("firstname");
query.addCondition("age < 20");
query.addLimit(10);
System.out.println(query.toMySQL());
//prints SELECT customerID, firstname FROM customers WHERE age < 20 LIMIT 10;
我不知道是否存在这样的库,但如果您知道,我会很高兴了解它。
如果要求更高一些,还有其他几个功能,那就太好了。例如,它还应该能够像 SELECT 一样处理子查询和其他查询类型。但这就太令人期待了;-)
最佳答案
您查看了吗Squiggle-SQL ?
关于java - 是否有一个类似 ORM 的 java 库,带有运行时定义的表来构建 sql 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10330516/