DbExecutor

Trait DbExecutor 

Source
pub trait DbExecutor: Send {
    // Required methods
    fn driver(&self) -> DbDriver;
    fn mysql_pool(&self) -> Option<&Pool<MySql>>;
    fn mysql_transaction_ref(
        &mut self,
    ) -> Option<&mut Transaction<'static, MySql>>;
    fn pg_pool(&self) -> Option<&Pool<Postgres>>;
    fn postgres_transaction_ref(
        &mut self,
    ) -> Option<&mut Transaction<'static, Postgres>>;
    fn sqlite_pool(&self) -> Option<&Pool<Sqlite>>;
    fn sqlite_transaction_ref(
        &mut self,
    ) -> Option<&mut Transaction<'static, Sqlite>>;

    // Provided method
    fn convert_sql(&self, sql: &str) -> String { ... }
}
Expand description

数据库执行器 trait,统一 DbPool 和 Transaction 的接口 类似于 sqlx 的 Executor trait,允许 CRUD 方法同时支持连接池和事务

这个 trait 提供了与 DbPool 相同的方法签名,让 CRUD 方法可以统一使用

注意:此 trait 要求 Send,因为异步方法需要在不同线程之间传递 Future

Required Methods§

Source

fn driver(&self) -> DbDriver

获取驱动类型

Source

fn mysql_pool(&self) -> Option<&Pool<MySql>>

获取 MySQL 连接池引用(用于 CRUD 方法) 对于 DbPool,返回实际的 Pool 对于 Transaction,返回 None(需要使用 mysql_transaction_ref)

Source

fn mysql_transaction_ref(&mut self) -> Option<&mut Transaction<'static, MySql>>

获取 MySQL 事务引用(用于在事务中执行 CRUD 方法) 对于 DbPool,返回 None 对于 Transaction,返回事务内部的连接

Source

fn pg_pool(&self) -> Option<&Pool<Postgres>>

获取 PostgreSQL 连接池引用

Source

fn postgres_transaction_ref( &mut self, ) -> Option<&mut Transaction<'static, Postgres>>

获取 PostgreSQL 事务引用

Source

fn sqlite_pool(&self) -> Option<&Pool<Sqlite>>

获取 SQLite 连接池引用

Source

fn sqlite_transaction_ref( &mut self, ) -> Option<&mut Transaction<'static, Sqlite>>

获取 SQLite 事务引用

Provided Methods§

Source

fn convert_sql(&self, sql: &str) -> String

转换 SQL 占位符

Implementors§