Mojolicious数据库操作(八)

一、关闭空闲连接——close_idle_connections

关闭所有当前未使用的连接,或者通过$keep变量限制空闲连接的数量。

$mysql = $mysql->close_idle_connections($keep);

二、数据库连接对象——db

通过 Mojo::mysql::Database 模块的对象,获得一个缓存的连接句柄,或者一个新创建的连接句柄。

这个db对象本身可以自动缓存的,意思就是说当我们关闭db对象后,Mojo会为我们保存一段时间的句柄,如果此时间里有新的db对象建立会自动的、继续使用该句柄。

my $db = $mysql->db;

三、from_string

该方法是可以从一个字符串里面解析数据库连接配置:

$mysql = $mysql->from_string('mysql://user@/test');

# 仅仅连接数据库
$mysql->from_string('mysql:///db1');

# 设置账户名和数据库
$mysql->from_string('mysql://batman@/db2');

# 设置用户名、密码、主机和数据库
$mysql->from_string('mysql://batman:s3cret@localhost/db3');

# 用户名、域、socket端口和数据库
$mysql->from_string('mysql://batman@%2ftmp%2fmysql.sock/db4');

# 用户名、数据库和其他选型
$mysql->from_string('mysql://batman@/db5?PrintError=1&RaiseError=0');

四、new

创建一个新的mojo::mysql对象,他可以在后台自动调用from_string方法:

my $mysql = Mojo::mysql->new;
my $mysql = Mojo::mysql->new(%attrs);
my $mysql = Mojo::mysql->new(\%attrs);
my $mysql = Mojo::mysql->new('mysql://user@/test');
my $mysql = Mojo::mysql->new('mariadb://user@/test');

五、strict_mode

strict_mode方法,是一个构造函数。

my $mysql = Mojo::mysql->strict_mode('mysql://user@/test');
my $mysql = $mysql->strict_mode($boolean);
my $mysql = Mojo::mysql->new('mysql://user@/test')->strict_mode(1);

启用strict_mode后,在创建新连接时会在后台执行如下操作:

SET SQL_MODE = CONCAT('ANSI,TRADITIONAL,ONLY_FULL_GROUP_BY,', @@sql_mode)
SET SQL_AUTO_IS_NULL = 0

六、DEBUGGING

通过设置DBI_TRACE环境变量,可以使DEBUG开发信息显示到stderr中:

DBI_TRACE=1
DBI_TRACE=15
DBI_TRACE=15=dbitrace.log
DBI_TRACE=SQL
DBI_PROFILE=2

 

标签