Skip to main content

Crate sz_orm_sqlx

Crate sz_orm_sqlx 

Source
Expand description

SZ-ORM sqlx 适配器

为 sz-orm-core 提供 Connection 和 ConnectionFactory 的实现, 支持 MySQL、PostgreSQL、SQLite 三种数据库。

不使用 sqlx::Any,而为每种后端单独实现,避免类型限制和生命周期问题。

§示例

use sz_orm_core::{Pool, PoolConfigBuilder};
use sz_orm_sqlx::{SqlitePoolHandle, SqlxSqliteConnectionFactory};
use std::sync::Arc;

let pool_handle = SqlitePoolHandle::connect("sqlite::memory:").await?;
let factory = Arc::new(SqlxSqliteConnectionFactory::new(Arc::new(pool_handle)));
let config = PoolConfigBuilder::new().max_size(10).build()?;
let pool = Pool::new(config, factory)?;

let mut conn = pool.acquire().await?;
let rows = conn.query("SELECT 1 as one").await?;
assert_eq!(rows.len(), 1);

Re-exports§

pub use any_driver::AnyBackend;
pub use any_driver::AnyConnection;
pub use any_driver::AnyPool;
pub use enhanced::CacheStats;
pub use enhanced::EnhancedPoolConfig;
pub use enhanced::EnhancedPoolConfigBuilder;
pub use enhanced::PreparedStatementCache;
pub use enhanced::TransactionIsolation;
pub use sz_orm_core;

Modules§

any_driver
Any driver — 一套代码多 DB 后端透明切换(SQLx 风格)
enhanced
增强功能模块:事务隔离级别、连接池配置增强、预备语句缓存

Structs§

MySqlPoolHandle
PgPoolHandle
SqlitePoolHandle
SqlxMySqlConnection
SqlxMySqlConnectionFactory
SqlxPgConnection
SqlxPgConnectionFactory
SqlxSqliteConnection
SqlxSqliteConnectionFactory

Traits§

PgExtensions
PostgreSQL 扩展功能 trait

Functions§

map_sqlx_error
将 sqlx::Error 转换为 DbError
mysql_bulk_insert
MySQL 批量导入(多行 INSERT,作为 LOAD DATA LOCAL INFILE 的安全替代)
pg_bulk_insert
PostgreSQL 批量导入(多行 INSERT,作为 COPY 协议的简化替代)
sqlite_backup
SQLite 在线备份(使用 VACUUM INTO,要求 SQLite 3.27+)