參考資訊:
https://www.rust-lang.org/learn/get-started
https://ithelp.ithome.com.tw/articles/10272280
https://gitee.com/naylor_personal/rust-actix/tree/master/workspace/db
http://bzz.wallizard.com:8081/share/books/RUST/Programming%20Rust%202nd%20Edition.pdf
安裝SQLite
$ sudo apt-get install sqlite sqlitebrowser -y
建立Database
$ export DATABASE_URL="sqlite:test.db" $ cd $ sqlx migrate add test $ vim migrations/xxx_test.sql -- Add migration script here CREATE TABLE account ( name TEXT PRIMARY KEY, password TEXT NOT NULL ); $ sqlx db create $ sqlx migrate run $ sqlitebrowser test.db
產生樣板
$ cargo new hello $ cp test.db hello $ cd hello
Cargo.toml
[package] name = "hello" version = "0.1.0" edition = "2021" [dependencies] sqlx = { version = "0.5.7", features = [ "runtime-tokio-rustls", "sqlite" ] } tokio = { version = "1.12.0", features = ["full"] } anyhow = "1.0" futures = "0.3"
src/main.rs
use sqlx::sqlite::SqlitePool; #[tokio::main] async fn main() -> anyhow::Result<()> { let pool = SqlitePool::connect("sqlite:test.db").await?; let user : &str = "test"; let pass : &str = "1234"; let _add = sqlx::query!(r#"insert into account(name, password) values($1, $2)"#, user, pass).fetch_all(&pool).await?; Ok(()) }
執行
$ cargo run $ sqlitebrowser test.db