#连接池 #sqlite #r2d2 # #连接管理器

r2d2sqlite

为r2d2连接池提供SQLite和SQLCipher支持

36个版本 (破坏性更新)

0.25.0 2024年7月21日
0.24.0 2024年2月17日
0.23.0 2023年11月12日
0.22.0 2023年5月20日
0.0.1 2015年7月22日

#46数据库接口

Download history 25311/week @ 2024-05-04 25968/week @ 2024-05-11 24418/week @ 2024-05-18 26719/week @ 2024-05-25 26417/week @ 2024-06-01 21950/week @ 2024-06-08 21909/week @ 2024-06-15 13482/week @ 2024-06-22 12140/week @ 2024-06-29 9988/week @ 2024-07-06 11196/week @ 2024-07-13 11930/week @ 2024-07-20 12165/week @ 2024-07-27 11818/week @ 2024-08-03 12330/week @ 2024-08-10 11160/week @ 2024-08-17

49,059 每月下载量
用于 72 个crates(直接使用54个)

MIT 许可证

9KB
102 代码行

r2d2-sqlite

Latest Version Build Status MIT licensed

r2d2连接池,基于Steven Fackler的r2d2-postgres。

文档


lib.rs:

为r2d2连接池提供SQLite支持。

库crate: r2d2-sqlite

集成: r2d2rusqlite

示例

extern crate r2d2;
extern crate r2d2_sqlite;
extern crate rusqlite;

use std::thread;
use r2d2_sqlite::SqliteConnectionManager;
use rusqlite::params;

fn main() {
    let manager = SqliteConnectionManager::file("file.db");
    let pool = r2d2::Pool::new(manager).unwrap();
    pool.get()
        .unwrap()
        .execute("CREATE TABLE IF NOT EXISTS foo (bar INTEGER)", params![])
        .unwrap();

    (0..10)
        .map(|i| {
            let pool = pool.clone();
            thread::spawn(move || {
                let conn = pool.get().unwrap();
                conn.execute("INSERT INTO foo (bar) VALUES (?)", &[&i])
                    .unwrap();
            })
        })
        .collect::<Vec<_>>()
        .into_iter()
        .map(thread::JoinHandle::join)
        .collect::<Result<_, _>>()
        .unwrap()
}

依赖项

~28MB
~441K SLoC