gpt4 book ai didi

rust - 将池设置为结构类型会导致错误

转载 作者:行者123 更新时间:2023-12-03 11:44:39 25 4
gpt4 key购买 nike

我在设置池为结构类型时遇到问题。

use super::db::{init_connection, models};
actix_web::Responder;
use diesel::r2d2::Pool;

#[derive(Debug)]
pub struct Basic {
pool: Pool
}

impl Basic {
pub fn new(&self) {
self.pool = init_connection().unwind();
}
}
我不断收到错误
pool: Pool
^^^^ expected 1 type argument
据我了解,“游泳池”就是这种类型。这里还需要什么?

最佳答案

Pool是Pool类型的通用结构,其中M代表要为数据库特定逻辑创建数据库连接而实现的特征。
例如,此特性有单独的实现,可与MySQL,Postgres,sqlite,mongodb等配合使用。根据要使用的数据库,查找合适的 crate ,例如r2d2-mongodb,r2d2_sqlite等。
对于Mysql,一种选择是使用r2d2_mysql crate。它具有一个MysqlConnectionManager结构,该结构实现r2d2::ManageConnection特征。可以如下所示使用:

// Imports
use r2d2::Pool;
use r2d2_mysql::MysqlConnectionManager;

// Define data type for connection pool. This can be part of app state
pool: Arc<Pool<MysqlConnectionManager>>,

// Initialize connection pool
let manager = r2d2_mysql::MysqlConnectionManager::new(builder);
let pool = Arc::new(r2d2::Pool::new(manager).unwrap());
请参阅此处的 crate 文档,例如: https://github.com/outersky/r2d2-mysql

关于rust - 将池设置为结构类型会导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64284570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com