4

我想要一种在 Ruby 中生成 SQL 查询的简单方法。我对 ActiveRecord、Sequel 和 DataMapper 了如指掌。我不是在寻找 ORM,而只是在寻找一种更简单的方法来生成 SQL 语句字符串。

我正在使用RBHive运行 Hive 查询,并且想要一种简单的方法来生成 Hive 查询语句。

这肯定存在(AR 等),我看过Arel,这似乎很有希望。但无法弄清楚如何从流行的 ORM 库中剥离 SQL 语句生成部分。一切都需要连接到数据库服务器。

目前我只使用原始 SQL 字符串,但我想摆脱它,因为查询变得越来越复杂和容易出错。

有任何想法吗?

4

2 回答 2

4

你说

一切都需要连接到数据库服务器。

我认为,至少对于 Sequel,您可以使用虚拟数据库:

require 'sequel'
DB = Sequel::Database.new() #-> <Sequel::Database: >
puts DB[:test].sql          #-> SELECT * FROM "TEST"
于 2012-09-15T14:19:28.513 回答
2

没错,您正在寻找 Arel,它用于为 SQL 语句构建 AST,并且不需要数据库连接。

不过,它的语法与您习惯看到的完全不同。所以要注意。

阅读此处的自述文件,看看它是否对您有意义:

https://github.com/rails/arel

于 2011-05-03T17:47:37.057 回答