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§
Sourcefn mysql_pool(&self) -> Option<&Pool<MySql>>
fn mysql_pool(&self) -> Option<&Pool<MySql>>
获取 MySQL 连接池引用(用于 CRUD 方法) 对于 DbPool,返回实际的 Pool 对于 Transaction,返回 None(需要使用 mysql_transaction_ref)
Sourcefn mysql_transaction_ref(&mut self) -> Option<&mut Transaction<'static, MySql>>
fn mysql_transaction_ref(&mut self) -> Option<&mut Transaction<'static, MySql>>
获取 MySQL 事务引用(用于在事务中执行 CRUD 方法) 对于 DbPool,返回 None 对于 Transaction,返回事务内部的连接
Sourcefn postgres_transaction_ref(
&mut self,
) -> Option<&mut Transaction<'static, Postgres>>
fn postgres_transaction_ref( &mut self, ) -> Option<&mut Transaction<'static, Postgres>>
获取 PostgreSQL 事务引用
Sourcefn sqlite_pool(&self) -> Option<&Pool<Sqlite>>
fn sqlite_pool(&self) -> Option<&Pool<Sqlite>>
获取 SQLite 连接池引用
Sourcefn sqlite_transaction_ref(
&mut self,
) -> Option<&mut Transaction<'static, Sqlite>>
fn sqlite_transaction_ref( &mut self, ) -> Option<&mut Transaction<'static, Sqlite>>
获取 SQLite 事务引用
Provided Methods§
Sourcefn convert_sql(&self, sql: &str) -> String
fn convert_sql(&self, sql: &str) -> String
转换 SQL 占位符