我刚开始使用Ruby,我正在玩Sinatra,但找不到在请求之间共享数据库连接的方法.
我来自Java web developpement,你要做的一件事就是集中数据库连接,所以我确信Ruby中存在类似的东西,但我找不到它.
ActiveRecord和DataMapper提供此功能,但我不需要ORM,只想进行常规SQL查询.
Sinatra是否有一些特定的方法,或者所有基于Rack的应用程序都有通用的方法?
要保持连接,您只需创建一个实例变量(Sinatra Applications只是对象)或全局变量.或者是一个为您管理连接的类.我见过的大多数Ruby数据库都是数据库适配器或只是客户端.
@db = Mysql2::Client.new #...
Run Code Online (Sandbox Code Playgroud)
或全局变量:
$db = Mysql2::Client.new #...
Run Code Online (Sandbox Code Playgroud)
连接池只是在应用程序生命周期内跨多个线程/光纤共享少量连接的一种方法.就我所知,Java,JVM并不共享进程之间的连接.