在rust中,如果想将sqlite数据库的连接信息con保存在结构体中,可以使用如下的两种方法。
首先,引入如下
use rusqlite::{params, Connection, Result};
一、带接口的方法
//下面是空的结构体,因为可以不使用key
pub struct MyConn{
}
//接口
trait opensqlitetrait {
fn opensqlite(&self)->Result<Connection>;
}
//结构体方法
impl opensqlitetrait for MyConn{
fn opensqlite(&self)->Result<Connection>{
let dbfile="src/static/MyDb123.db";
let con = Connection::open(dbfile)?;
println!("打印连接参数看看其内容:{:?}",con);
Ok(con)
}
}
第二种方法:不带接口的,只需要实例化结构体的方法
//下面是空的结构体,因为可以不使用key
pub struct MyConn{
}
//结构体方法
impl MyConn{
fn opensqlite(&self)->Result<Connection>{
let dbfile="src/static/MyDb123.db";
let con = Connection::open(dbfile)?;
println!("打印连接参数看看其内容:{:?}",con);
Ok(con)
}
}
三、调用方法如下 在main函数中,使用下面的代码调用:
let mut Mysqlite=MyConn{
};
let c = Mysqlite.opensqlite();
let dfcon = match &c {
Ok(cc) => cc,
Err(error) => {
panic!("打开数据库失败: {:?}", error)
},
};
就这样,获得的dfcon就是数据库连接的信息。
注意,连接数据成功返回的信息是:Ok(Connection { path: Some("src/static/MyDb123.db") })
我们经过下面的代码处理之后,
let c = Mysqlite.opensqlite();
let dfcon = match &c {
Ok(cc) => cc,
Err(error) => {
panic!("打开数据库失败: {:?}", error)
},
};
就会获得Connection { path: Some("src/static/MyDb123.db") } 这样的值,该值才是我们所需要的连接的信息.就这样,获得的dfcon就是数据库连接的信息。