pub struct ConnectionConfig {
pub db_type: DbType,
pub host: String,
pub port: u16,
pub database: String,
pub username: String,
pub password: String,
pub timeout: Duration,
pub max_connections: usize,
}Expand description
数据库连接配置
Fields§
§db_type: DbType§host: String§port: u16§database: String§username: String§password: String§timeout: Duration§max_connections: usizeImplementations§
Source§impl ConnectionConfig
impl ConnectionConfig
pub fn sqlite(path: &str) -> Self
pub fn mysql( host: &str, port: u16, database: &str, username: &str, password: &str, ) -> Self
Sourcepub fn postgresql(
host: &str,
port: u16,
database: &str,
username: &str,
password: &str,
) -> Self
pub fn postgresql( host: &str, port: u16, database: &str, username: &str, password: &str, ) -> Self
Examples found in repository?
examples/postgresql_example.rs (line 97)
77async fn demonstrate_database_connection() -> std::result::Result<(), Box<dyn std::error::Error>> {
78 println!("PostgreSQL connection (native wire protocol):");
79 let dsn = Dsn::new(DBDriver::PostgreSQL, PG_DB)
80 .with_host(PG_HOST)
81 .with_port(PG_PORT)
82 .with_username(PG_USER)
83 .with_password(PG_PASS);
84 println!(" DSN: {}", dsn.build());
85
86 // Test actual PostgreSQL connection
87 let db = Database::postgresql(PG_HOST, PG_PORT, PG_DB, PG_USER, PG_PASS).await?;
88 println!(" ✅ Connected to PostgreSQL (native wire protocol)");
89 println!(" DB type: {:?}", db.db_type());
90 println!(" Connected: {}", db.is_connected());
91 db.ping().await?;
92 println!(" ✅ Ping successful");
93 db.close().await?;
94
95 println!();
96 println!("Connection via ConnectionFactory:");
97 let config = ConnectionConfig::postgresql(PG_HOST, PG_PORT, PG_DB, PG_USER, PG_PASS)
98 .with_timeout(std::time::Duration::from_secs(30))
99 .with_max_connections(10);
100 let conn = ConnectionFactory::create_connection(config.clone()).await?;
101 println!(" ✅ Connection created (factory)");
102 println!(" DB type: {:?}", conn.db_type());
103 conn.close().await?;
104
105 println!();
106 println!("Direct PostgresConnection:");
107 let pg = PostgresConnection::new(&config).await?;
108 println!(" ✅ PostgresConnection created");
109 println!(" Connected: {}", pg.is_connected());
110 pg.close().await?;
111
112 Ok(())
113}Sourcepub fn with_timeout(self, timeout: Duration) -> Self
pub fn with_timeout(self, timeout: Duration) -> Self
Examples found in repository?
examples/postgresql_example.rs (line 98)
77async fn demonstrate_database_connection() -> std::result::Result<(), Box<dyn std::error::Error>> {
78 println!("PostgreSQL connection (native wire protocol):");
79 let dsn = Dsn::new(DBDriver::PostgreSQL, PG_DB)
80 .with_host(PG_HOST)
81 .with_port(PG_PORT)
82 .with_username(PG_USER)
83 .with_password(PG_PASS);
84 println!(" DSN: {}", dsn.build());
85
86 // Test actual PostgreSQL connection
87 let db = Database::postgresql(PG_HOST, PG_PORT, PG_DB, PG_USER, PG_PASS).await?;
88 println!(" ✅ Connected to PostgreSQL (native wire protocol)");
89 println!(" DB type: {:?}", db.db_type());
90 println!(" Connected: {}", db.is_connected());
91 db.ping().await?;
92 println!(" ✅ Ping successful");
93 db.close().await?;
94
95 println!();
96 println!("Connection via ConnectionFactory:");
97 let config = ConnectionConfig::postgresql(PG_HOST, PG_PORT, PG_DB, PG_USER, PG_PASS)
98 .with_timeout(std::time::Duration::from_secs(30))
99 .with_max_connections(10);
100 let conn = ConnectionFactory::create_connection(config.clone()).await?;
101 println!(" ✅ Connection created (factory)");
102 println!(" DB type: {:?}", conn.db_type());
103 conn.close().await?;
104
105 println!();
106 println!("Direct PostgresConnection:");
107 let pg = PostgresConnection::new(&config).await?;
108 println!(" ✅ PostgresConnection created");
109 println!(" Connected: {}", pg.is_connected());
110 pg.close().await?;
111
112 Ok(())
113}Sourcepub fn with_max_connections(self, max: usize) -> Self
pub fn with_max_connections(self, max: usize) -> Self
Examples found in repository?
examples/postgresql_example.rs (line 99)
77async fn demonstrate_database_connection() -> std::result::Result<(), Box<dyn std::error::Error>> {
78 println!("PostgreSQL connection (native wire protocol):");
79 let dsn = Dsn::new(DBDriver::PostgreSQL, PG_DB)
80 .with_host(PG_HOST)
81 .with_port(PG_PORT)
82 .with_username(PG_USER)
83 .with_password(PG_PASS);
84 println!(" DSN: {}", dsn.build());
85
86 // Test actual PostgreSQL connection
87 let db = Database::postgresql(PG_HOST, PG_PORT, PG_DB, PG_USER, PG_PASS).await?;
88 println!(" ✅ Connected to PostgreSQL (native wire protocol)");
89 println!(" DB type: {:?}", db.db_type());
90 println!(" Connected: {}", db.is_connected());
91 db.ping().await?;
92 println!(" ✅ Ping successful");
93 db.close().await?;
94
95 println!();
96 println!("Connection via ConnectionFactory:");
97 let config = ConnectionConfig::postgresql(PG_HOST, PG_PORT, PG_DB, PG_USER, PG_PASS)
98 .with_timeout(std::time::Duration::from_secs(30))
99 .with_max_connections(10);
100 let conn = ConnectionFactory::create_connection(config.clone()).await?;
101 println!(" ✅ Connection created (factory)");
102 println!(" DB type: {:?}", conn.db_type());
103 conn.close().await?;
104
105 println!();
106 println!("Direct PostgresConnection:");
107 let pg = PostgresConnection::new(&config).await?;
108 println!(" ✅ PostgresConnection created");
109 println!(" Connected: {}", pg.is_connected());
110 pg.close().await?;
111
112 Ok(())
113}Trait Implementations§
Source§impl Clone for ConnectionConfig
impl Clone for ConnectionConfig
Source§fn clone(&self) -> ConnectionConfig
fn clone(&self) -> ConnectionConfig
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · 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 ConnectionConfig
impl Debug for ConnectionConfig
Auto Trait Implementations§
impl Freeze for ConnectionConfig
impl RefUnwindSafe for ConnectionConfig
impl Send for ConnectionConfig
impl Sync for ConnectionConfig
impl Unpin for ConnectionConfig
impl UnsafeUnpin for ConnectionConfig
impl UnwindSafe for ConnectionConfig
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