baichun_framework_db/lib.rs
1// ruoyi-framework-db/src/lib.rs
2//! # baichun-framework-db
3//!
4//! `baichun-framework-db` 是一个基于 SQLx 的数据库访问层,提供了简单而强大的数据库操作接口。
5//! 支持 MySQL、PostgreSQL 和 SQLite 数据库,并提供了连接池管理、事务支持等功能。
6//!
7//! ## 主要功能
8//!
9//! - 连接池管理:自动配置最佳连接数,支持连接健康检查和超时处理
10//! - 多数据库支持:MySQL、PostgreSQL、SQLite
11//! - 异步操作:基于 tokio 的异步运行时
12//! - 事务支持:自动事务管理,支持嵌套事务
13//! - 错误处理:详细的错误类型和追踪
14//!
15//! ## 快速开始
16//!
17//! ```rust,no_run
18//! use baichun_framework_db::{DatabaseConfig, init, get_pool};
19//!
20//! #[tokio::main]
21//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
22//! // 创建数据库配置
23//! let config = DatabaseConfig::new()
24//! .url("mysql://user:pass@localhost/db_name")
25//! .max_connections(10)
26//! .min_connections(5);
27//!
28//! // 初始化数据库连接池
29//! init(config).await?;
30//!
31//! // 获取连接池实例
32//! let pool = get_pool();
33//!
34//! // 执行查询
35//! let rows = pool.execute("SELECT * FROM users WHERE id = ?", &[&1]).await?;
36//!
37//! Ok(())
38//! }
39//! ```
40
41pub mod config;
42pub mod error;
43pub mod executor;
44pub mod pool;
45
46#[cfg(test)]
47mod tests;
48
49pub use config::DatabaseConfig;
50pub use error::{Error as DbError, Result as DbResult};
51pub use executor::{Executor, TransactionManager};
52pub use pool::{get_pool, init, DbMetrics, DbPool, DB_POOL};