sz_orm_sqlx/lib.rs
1//! SZ-ORM sqlx 适配器
2//!
3//! 为 sz-orm-core 提供 Connection 和 ConnectionFactory 的实现,
4//! 支持 MySQL、PostgreSQL、SQLite 三种数据库。
5//!
6//! 不使用 sqlx::Any,而为每种后端单独实现,避免类型限制和生命周期问题。
7//!
8//! # 示例
9//!
10//! ```no_run
11//! use sz_orm_core::{Pool, PoolConfigBuilder};
12//! use sz_orm_sqlx::{SqlitePoolHandle, SqlxSqliteConnectionFactory};
13//! use std::sync::Arc;
14//!
15//! # #[tokio::main]
16//! # async fn main() -> Result<(), Box<dyn std::error::Error>> {
17//! let pool_handle = SqlitePoolHandle::connect("sqlite::memory:").await?;
18//! let factory = Arc::new(SqlxSqliteConnectionFactory::new(Arc::new(pool_handle)));
19//! let config = PoolConfigBuilder::new().max_size(10).build()?;
20//! let pool = Pool::new(config, factory)?;
21//!
22//! let mut conn = pool.acquire().await?;
23//! let rows = conn.query("SELECT 1 as one").await?;
24//! assert_eq!(rows.len(), 1);
25//! # Ok(())
26//! # }
27//! ```
28
29mod any;
30pub mod any_driver;
31mod error;
32
33pub use any::{
34 MySqlPoolHandle, PgPoolHandle, SqlitePoolHandle, SqlxMySqlConnection,
35 SqlxMySqlConnectionFactory, SqlxPgConnection, SqlxPgConnectionFactory, SqlxSqliteConnection,
36 SqlxSqliteConnectionFactory,
37};
38pub use any_driver::{AnyBackend, AnyConnection, AnyPool};
39pub use error::map_sqlx_error;
40
41pub use sz_orm_core;