Skip to content

Instantly share code, notes, and snippets.

@nomissbowling
Forked from kuc-arc-f/Cargo.toml
Created June 30, 2023 01:00
Show Gist options
  • Save nomissbowling/df9bf05047be0fddc2ea36f93139769f to your computer and use it in GitHub Desktop.
Save nomissbowling/df9bf05047be0fddc2ea36f93139769f to your computer and use it in GitHub Desktop.
Rust, rusqlite で、sqlite3を操作する例
[dependencies]
rusqlite = "0.24.0"
use rusqlite::{params, Connection, Result};
#[derive(Debug)]
struct Person {
id: i32,
name: String,
data: Option<Vec<u8>>,
}
//
fn main() -> Result<()> {
let file_sqlite3: String = "db1.db".to_string();
let conn = Connection::open(file_sqlite3).unwrap();
let me = Person {
id: 0,
name: "Steven".to_string(),
data: None,
};
conn.execute(
"INSERT INTO person (name, data) VALUES (?1, ?2)",
params![me.name, me.data],
)?;
let mut stmt = conn.prepare("SELECT id, name, data FROM person")?;
let person_iter = stmt.query_map(params![], |row| {
Ok(Person {
id: row.get(0)?,
name: row.get(1)?,
data: row.get(2)?,
})
})?;
for person in person_iter {
println!("Found person {:?}", person.unwrap());
}
Ok(())
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment