RustでPostgreSQLに接続する

前回はMySQLに接続したので今回はPostgreSQLに接続してみよう。Rustはコンパイルを通すのが結構キツいんで、こうしてコンパイルが通るコードを公開し続けることで特異点に到達できればと。

use r2d2;
use r2d2_postgres;
use postgres;
#[derive(Debug)]
struct Hoge {
hoge: String
}
fn main() {
let name = "name";
let pass = "pass";
let db_url = "postgres://user:pass@localhost:5432/name";
let manager = r2d2_postgres::PostgresConnectionManager::new(db_url, r2d2_postgres::TlsMode::None).unwrap();
let pool: Arc<r2d2::Pool<r2d2_postgres::PostgresConnectionManager>> = Arc::new(r2d2::Pool::new(manager).unwrap());
let conn =  pool.get().unwrap();
let sql = r"SELECT hoge FROM user WHERE name = $1 AND pass = $2";
let stmt = conn.prepare_cached(sql).unwrap();
let rows = stmt.query(&[&name, &pass]).unwrap();
let length = &rows.len().clone();
if *length == 0 {
dbg!("dame-");
} else {
dbg!(Hoge{hoge: rows.get(0).get("hoge")});
}
}

こんな感じで接続できました。結構仰々しいコードです。Poolはとりあえずr2d2ってのを使ってみました。まだ手探りなのでどんなプールを使うのがベストなのかは謎。個人的にusizeってのが目新しかった。JSとかだとintで返るじゃないですか。

参考

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA