src*_*ulo 5 database perl catalyst dbix-class
我在我正在构建的Catalyst应用程序中使用DBIx :: Class.它工作得很好,但有时我需要使用我自己开发的自己的db函数,这些函数非常符合我的需求.因此,我需要一个dbh.但是,因为我已经在使用,所以我知道它已经有一个正在使用的dbh.为了避免与数据库建立另一个不必要的连接,我想只使用已经创建的dbh .我知道DBIx ::类::存储:: DBI模块有两个方法和,但我真的不知道有什么区别两者之间,如果他们获得访问胸径的最佳途径.谁能告诉我什么是最好的方式来获得胸径会在一个应用程序?我更喜欢一种方法,我可以将其存储在存储区中,如下所示:DBIx::ClassDBIx::Classdbhdbh_doDBIx::ClassCatalyst
sub dbh :Private {
my ($self, $c) = @_;
$c->stash->{dbh} = #get dbh from DBIx::Class here
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
fri*_*edo 12
我总是要看一下.假设您有一个架构对象的实例,您可以通过该storage方法获取其Storage对象.假设是a Storage::DBI,那么有一个dbh方法可以让你获得数据库句柄.所以:
my $dbh = $c->model( 'My::DB' )->storage->dbh;
Run Code Online (Sandbox Code Playgroud)
应该做的伎俩.