r2d2_mysql

mysql support library for the r2d2 connection pool.

crates.io Documentation Version License Download

Install

Include r2d2_mysql in the [dependencies] section of your Cargo.toml:

toml [dependencies] r2d2_mysql = "24"

Usage

```rust use std::{env, sync::Arc, thread};

use r2d2_mysql::{ mysql::{prelude::*, Opts, OptsBuilder}, r2d2, MySqlConnectionManager, };

fn main() { let url = env::var("DATABASEURL").unwrap(); let opts = Opts::fromurl(&url).unwrap(); let builder = OptsBuilder::fromopts(opts); let manager = MySqlConnectionManager::new(builder); let pool = Arc::new(r2d2::Pool::builder().maxsize(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();
}

} ```