pub struct DatabaseConfig {
pub url: String,
pub max_connections: u32,
pub min_connections: u32,
pub connect_timeout: u64,
pub max_lifetime: u64,
pub idle_timeout: u64,
pub acquire_timeout: u64,
}Expand description
数据库配置结构体
用于配置数据库连接池的各项参数,包括连接 URL、连接数限制、超时设置等。 所有字段都提供了默认值,可以只设置必要的参数。
§示例
use baichun_framework_db::DatabaseConfig;
let config = DatabaseConfig {
url: "mysql://user:pass@localhost/db_name".to_string(),
max_connections: 20,
min_connections: 5,
..Default::default()
};Fields§
§url: String数据库连接 URL
支持以下格式:
- MySQL:
mysql://user:pass@host:port/dbname - PostgreSQL:
postgresql://user:pass@host:port/dbname - SQLite:
sqlite:///path/to/db.sqlite
max_connections: u32连接池中的最大连接数
默认值为 CPU 核心数的 2 倍
min_connections: u32连接池中的最小连接数
默认值为 CPU 核心数,最小为 1
connect_timeout: u64连接超时时间(秒)
建立新连接时的超时时间,默认为 10 秒
max_lifetime: u64连接最大生命周期(秒)
一个连接在连接池中的最长存活时间,默认为 1 小时
idle_timeout: u64空闲连接超时时间(秒)
空闲连接在被关闭前的最长等待时间,默认为 10 分钟
acquire_timeout: u64获取连接超时时间(秒)
从连接池获取连接的最长等待时间,默认为 30 秒
Implementations§
Source§impl DatabaseConfig
impl DatabaseConfig
Sourcepub fn new() -> Self
pub fn new() -> Self
创建一个新的数据库配置实例
§示例
use baichun_framework_db::DatabaseConfig;
let config = DatabaseConfig::new()
.url("mysql://user:pass@localhost/db_name")
.max_connections(20)
.min_connections(5);Sourcepub fn max_connections(self, max: u32) -> Self
pub fn max_connections(self, max: u32) -> Self
设置最大连接数
Sourcepub fn min_connections(self, min: u32) -> Self
pub fn min_connections(self, min: u32) -> Self
设置最小连接数
Sourcepub fn connect_timeout(self, timeout: u64) -> Self
pub fn connect_timeout(self, timeout: u64) -> Self
设置连接超时时间(秒)
Sourcepub fn max_lifetime(self, lifetime: u64) -> Self
pub fn max_lifetime(self, lifetime: u64) -> Self
设置连接最大生命周期(秒)
Sourcepub fn idle_timeout(self, timeout: u64) -> Self
pub fn idle_timeout(self, timeout: u64) -> Self
设置空闲连接超时时间(秒)
Sourcepub fn acquire_timeout(self, timeout: u64) -> Self
pub fn acquire_timeout(self, timeout: u64) -> Self
设置获取连接超时时间(秒)
Sourcepub fn into_pool_options(&self) -> MySqlPoolOptions
pub fn into_pool_options(&self) -> MySqlPoolOptions
将配置转换为 SQLx 连接池选项
Trait Implementations§
Source§impl Clone for DatabaseConfig
impl Clone for DatabaseConfig
Source§fn clone(&self) -> DatabaseConfig
fn clone(&self) -> DatabaseConfig
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for DatabaseConfig
impl Debug for DatabaseConfig
Source§impl Default for DatabaseConfig
impl Default for DatabaseConfig
Source§impl<'de> Deserialize<'de> for DatabaseConfig
impl<'de> Deserialize<'de> for DatabaseConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for DatabaseConfig
impl RefUnwindSafe for DatabaseConfig
impl Send for DatabaseConfig
impl Sync for DatabaseConfig
impl Unpin for DatabaseConfig
impl UnwindSafe for DatabaseConfig
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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