app->attr(dbh => sub {
my $self = shift;
my $dsn = 'dbi:Oracle:schema';
my $usr = 'Scott';
my $pas = 'tiger';
my $dbh = $DBI->connect_cached( $dsn, $usr, $pas );
return $dbh;
}
# later
get '/query' => sub{
my $c = shift;
my $dbh = $c->app->dbh;
my $sql = 'SQL QUERY HERE';
my $sth = $dbh->pepare_cached( $sql );
my $details = $dbh->selectall_arrayref( $sql, { Slice = {} });
# and so on
};
IN above example, I do prepare cached, but don't know how to call the cached query each time the route is visitied. 1. is my initial DBH setup optimal? 2. How do I make use of prepare_cached? Thanks