pub struct Connection { /* private fields */ }
Expand description
An open connection to a SQLite database.
§Examples
Load a set of rows from the default SQLite database, and iterate over them.
use spin_sdk::sqlite::{Connection, Value};
let db = Connection::open_default()?;
let query_result = db.execute(
"SELECT * FROM users WHERE age >= ?",
&[Value::Integer(min_age)]
)?;
let name_index = query_result.columns.iter().position(|c| c == "name").unwrap();
for row in &query_result.rows {
let name: &str = row.get(name_index).unwrap();
println!("Found user {name}");
}
Use the QueryResult::rows() wrapper to access a column by name. This is simpler and more readable but incurs a lookup on each access, so is not recommended when iterating a data set.
let db = Connection::open_default()?;
let query_result = db.execute(
"SELECT * FROM users WHERE id = ?",
&[Value::Integer(user_id)]
)?;
let name = query_result.rows().next().and_then(|r| r.get::<&str>("name")).unwrap();
Perform an aggregate (scalar) operation over a named SQLite database. The result set contains a single column, with a single row.
use spin_sdk::sqlite::Connection;
let db = Connection::open("customer-data")?;
let query_result = db.execute("SELECT COUNT(*) FROM users", &[])?;
let count = query_result.rows.first().and_then(|r| r.get::<usize>(0)).unwrap();
Delete rows from a SQLite database. The usual Connection::execute() syntax is used but the query result is always empty.
use spin_sdk::sqlite::{Connection, Value};
let db = Connection::open("customer-data")?;
db.execute("DELETE FROM users WHERE age < ?", &[Value::Integer(min_age)])?;
A handle to an open sqlite instance
Implementations§
Source§impl Connection
impl Connection
Sourcepub fn open_default() -> Result<Self, Error>
pub fn open_default() -> Result<Self, Error>
Open a connection to the default database
Source§impl Connection
impl Connection
Source§impl Connection
impl Connection
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for Connection
impl RefUnwindSafe for Connection
impl Send for Connection
impl Sync for Connection
impl Unpin for Connection
impl UnwindSafe for Connection
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more