add rusqlite
This commit is contained in:
49
rusqlite/src/main.rs
Normal file
49
rusqlite/src/main.rs
Normal file
@@ -0,0 +1,49 @@
|
||||
use rusqlite::{params, Connection, Result};
|
||||
use time::Timespec;
|
||||
|
||||
#[derive(Debug)]
|
||||
struct Person {
|
||||
id: i32,
|
||||
name: String,
|
||||
time_created: Timespec,
|
||||
memo: String,
|
||||
}
|
||||
|
||||
fn main() -> Result<()> {
|
||||
let conn = Connection::open_in_memory()?;
|
||||
|
||||
conn.execute(
|
||||
"CREATE TABLE person (
|
||||
id INTEGER PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
time_created TEXT NOT NULL,
|
||||
memo TEXT NOT NULL
|
||||
)",
|
||||
params![],
|
||||
)?;
|
||||
let me = Person {
|
||||
id: 0,
|
||||
name: "Steven".to_owned(),
|
||||
time_created: time::get_time(),
|
||||
memo: "memo...".to_owned(),
|
||||
};
|
||||
conn.execute(
|
||||
"INSERT INTO person (name, time_created, memo) VALUES (?1, ?2, ?3)",
|
||||
params![me.name, me.time_created, me.memo],
|
||||
)?;
|
||||
|
||||
let mut stmt = conn.prepare("SELECT id, name, time_created, memo FROM person")?;
|
||||
let person_iter = stmt.query_map(params![], |row| {
|
||||
Ok(Person {
|
||||
id: row.get(0)?,
|
||||
name: row.get(1)?,
|
||||
time_created: row.get(2)?,
|
||||
memo: row.get(3)?,
|
||||
})
|
||||
})?;
|
||||
|
||||
for person in person_iter {
|
||||
println!("Found person {:?}", person.unwrap());
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
Reference in New Issue
Block a user