7

我刚开始使用 Ruby,我正在使用 Sinatra,但找不到在请求之间共享数据库连接的方法。

我来自 Java Web 开发,你必须做的基本事情之一就是汇集数据库连接,所以我确信 Ruby 中存在类似的东西,但我就是找不到。

ActiveRecord 和 DataMapper 提供此功能,但我不需要 ORM,只想进行常规 SQL 查询。

是否有针对 Sinatra 的特定方法或针对所有基于 Rack 的应用程序的通用方法?

4

1 回答 1

5

要保持连接,您只需要创建一个实例变量(无论如何,Sinatra 应用程序只是对象)或全局变量。或者为您管理连接的课程。我见过的大多数 Ruby 数据库库都是数据库适配器或只是客户端。

@db = Mysql2::Client.new #...

或全局变量:

$db = Mysql2::Client.new #...

连接池只是在应用程序的生命周期内跨多个线程/光纤共享少量连接的一种方式。据我所知,JVM Java 并不共享进程之间的连接。

但是,有一个通用的 Ruby 连接池库

于 2012-08-16T18:35:22.403 回答