作为一个来自面向对象世界的人,我发现很难理解 SQL。然而,最近我意识到经典的 SQL 构造
select X from Y where Z
基本上等价于以下 OOP 结构:
List<SomeType> results = db.query(new Matcher<SomeType> () {
public boolean match(SomeType candidate) {
return ...; // checks condition Z on candidate, returns true for match
}
};
所以我的问题是:其他 SQL 构造(例如联接)的 OOP 等效项是什么?
最佳答案
我认为微软的LINQ(语言独立查询)已经尝试创建一种可以用作SQL的面向对象版本的语言。 Hibernate 的 HQL 是另一个。如果 SQL 给您带来问题,我建议您探索这两个方面。也许他们可以让你更清楚。
关于SQL 结构转换为 OOP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2482708/