Rust操作MySQL數據庫實踐(一)查詢數據表
內容
[package] name = "mysqlcon" version = "0.1.0" edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] mysql = "*" chrono = "0.4"
2.代碼示例:
use mysql::*; use mysql::prelude::*; fn main(){ //設置連接字符串 let url="mysql://root:admin123456@localhost:3306/db01"; //創建連接池 let pool=Pool::new(url).unwrap(); //連接數據庫 let mut conn=pool.get_conn().unwrap(); //數據庫操作 //1.查詢user表 //方式1:流式查詢 數據逐行讀取,數據不會存儲在內存中 conn.query_iter("Select id,name,age from user").unwrap() .for_each(|row|{ let r:(i32,String,i32)=from_row(row.unwrap()); println!("id={},name={},age={}",r.0,r.1,r.2); }); //方式2:將數據集取出存儲在Vec中 let res:Vec<(i32,String,i32)>=conn.query("Select id,name,age from user").unwrap(); for r in res{ println!("id={},name={},age={}",r.0,r.1,r.2); } //方式3:將數據轉換成Struct struct User{ id:i32, name:String, age:i32 } let res=conn.query_map("Select id,name,age from user", |(id,name,age)|User{ id, name, age } ).expect("QUERY FAILED"); for user in res{ println!("id={},name={},age={}",user.id,user.name,user.age); } }