pub struct Database { /* private fields */ }Expand description
数据库连接管理器
管理 MySQL 数据库连接池,提供查询构建和执行的入口点
§示例
use yang_db::Database;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// 连接数据库
let db = Database::connect("mysql://user:password@localhost:3306/test").await?;
// 使用查询构建器
let builder = db.table("users")
.field("id")
.field("name");
// 执行查询(需要实现 select 方法)
// let users = builder.select::<User>().await?;
Ok(())
}Implementations§
Source§impl Database
impl Database
Sourcepub async fn connect_with_config(
url: &str,
config: DatabaseConfig,
) -> Result<Self, DbError>
pub async fn connect_with_config( url: &str, config: DatabaseConfig, ) -> Result<Self, DbError>
使用自定义配置创建数据库连接
Sourcepub fn table(&self, table_name: &str) -> QueryBuilder<'_>
pub fn table(&self, table_name: &str) -> QueryBuilder<'_>
选择表,返回查询构建器
Sourcepub async fn transaction(&self) -> Result<Transaction, DbError>
pub async fn transaction(&self) -> Result<Transaction, DbError>
开始事务
Auto Trait Implementations§
impl Freeze for Database
impl !RefUnwindSafe for Database
impl Send for Database
impl Sync for Database
impl Unpin for Database
impl UnsafeUnpin for Database
impl !UnwindSafe for Database
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more