Dzwebs.Net

撰写电脑技术杂文十余年

rust 将sqlite数据库的连接信息con保存在结构体的方法

Admin | 2023-1-17 11:23:04 | 被阅次数 | 74

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

  在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就是数据库连接的信息。


网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231