Rust操作MySQL数据库实践(一)查询数据表

前言

Rust操作MySQL数据库实践(一)查询数据表

 

内容

1.首先添加Rust MySql客户端依赖库,在Cargo.toml中加入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);
    }
​
}

 

 

posted @ 2021-05-12 20:35  Jaciot  阅读(5972)  评论(0编辑  收藏  举报