16 个稳定版本 (15 个主要版本)
25.0.0 | 2024年7月8日 |
---|---|
24.0.0 | 2023年7月18日 |
23.0.0 | 2022年12月12日 |
22.0.0 | 2022年10月25日 |
0.2.0 | 2015年7月25日 |
#231 in 数据库接口
3,718 每月下载量
用于 17 个 Crates (14 个直接使用)
7KB
64 行
r2d2_mysql
安装
在您的 Cargo.toml
的 [dependencies]
部分包含 r2d2_mysql
[dependencies]
r2d2_mysql = "24"
使用方法
use std::{env, sync::Arc, thread};
use r2d2_mysql::{
mysql::{prelude::*, Opts, OptsBuilder},
r2d2, MySqlConnectionManager,
};
fn main() {
let url = env::var("DATABASE_URL").unwrap();
let opts = Opts::from_url(&url).unwrap();
let builder = OptsBuilder::from_opts(opts);
let manager = MySqlConnectionManager::new(builder);
let pool = Arc::new(r2d2::Pool::builder().max_size(4).build(manager).unwrap());
let mut tasks = vec![];
for _ in 0..3 {
let pool = pool.clone();
let th = thread::spawn(move || {
let mut conn = pool.get().expect("error getting connection from pool");
let _ = conn
.query("SELECT version()")
.map(|rows: Vec<String>| rows.is_empty())
.expect("error executing query");
});
tasks.push(th);
}
for th in tasks {
let _ = th.join();
}
}
依赖
~13–27MB
~437K SLoC