是否有OO模型来生成SQL?

flq*_*flq 1 .net c# sql semantics

我一直想知道是否有任何代码能够以某种对象树的形式表示SQL,这些对象树可以被组装,修改然后最终呈现为有效的SQL?

在我的头顶,它可能看起来像那样......

var stmnt = new Statement();
stmnt
  .AddMaster("Customer")
  .Show("Firstname, "Lastname")
  .AddJoin("Address", "ID", "CustomerID")
  .Show("Street", "City");
stmnt.WhereStatement()
  .AddParameter("Address.City", Op.Equal);

string sql = stmnt.Generate();
// select a.FirstName, a.LastName, b.Street, b.City
// from Customer a
// join Address b on b.CustomerID = a.ID
// where b.City = :p1
Run Code Online (Sandbox Code Playgroud)

这只是一个例子,那里的东西可能完全不同,但是,是的,我很想听到那方面的内容.

更新:

我知道使用ORM技术从数据库中获取结果的众多可能性,但我正在使用SQL本身的模型.我知道抽象级别非常低,但它可能允许多个协作者可以处理SQL语句(多个连接,多个连接)的情况,然后可以在构建阶段结束时"呈现".

duf*_*ymo 5

Hibernate有自己的Hibernate查询语言(HQL),它将类似SQL的结构表示为对象.