首页 > 数据库 >记rust操作mysql增删查改

记rust操作mysql增删查改

时间:2022-12-04 20:56:45浏览次数:44  
标签:rust 查改 user mysql let id conn name

//Cargo.toml
[dependencies]
mysql = "*"
chrono = "0.4"


//filename:mysql_helper.rs
//filename:mysql_helper.rs
use mysql::*;
use mysql::prelude::*;

pub struct User
{
pub id: i32,
pub name: String,
pub age: i32,
}

pub fn conn_mysql()->PooledConn{
//设置连接字符串 localhost 注意端口:3306
let _url="mysql://root:Ca2OOf3U6aBV7Nz3@localhost:3306/wz96333releasedb";
let pool=Pool::new(_url).unwrap();
//连接数据库
let conn=pool.get_conn().unwrap();
return conn;
}

pub fn select(sqlstr: &str)->User{
//连接数据库
let mut conn=conn_mysql();
let mut user=User{id:0,name:String::from(""), age:0};
conn.query_iter(sqlstr).unwrap()
.for_each(|row|{
let r:(i32,String,i32)=from_row(row.unwrap());
user=User{id:r.0,name:String::from(r.1), age:r.2};
});

return user;
}

pub fn delete(id: i32){
//连接数据库
let mut conn=conn_mysql();
let stmt = conn.prep("delete from user where id=:id").unwrap();

conn.exec_drop(&stmt, params! {
"id" => id,
}).unwrap();
}

pub fn insert(user:User){
//连接数据库
let mut conn=conn_mysql();
conn.exec_drop(
"INSERT INTO user (name,age) VALUES (:name, :age)",
params! {
"name" => user.name,
"age" => user.age,
}).unwrap();
}

pub fn update(user: User){
//连接数据库
let mut conn=conn_mysql();

let stmt = conn.prep("update user set name=:name, age=:age where id=:id")
.unwrap();

conn.exec_drop(&stmt, params! {
"name" => user.name,
"age" => user.age,
"id" => user.id,
}).unwrap();
}


//main.rs

use mysql_helper::User;
mod mysql_helper;

fn main ()
{
//insert
let user=User{id:1,name:String::from("test"), age:18};
mysql_helper::insert(user);

//select
let sqlstr="SELECT * FROM `user` WHERE ID=2 ORDER BY id DESC".to_string();
let user:User =mysql_helper::select(&sqlstr);
println!("User id:{},name:{},age:{},",user.id,user.name,user.age);

//update
let user=User{id:2,name:String::from("test11"), age:20};
mysql_helper::update(user);

//delete
mysql_helper::delete(32);
}

标签:rust,查改,user,mysql,let,id,conn,name
From: https://www.cnblogs.com/hbzj/p/16950741.html

相关文章

  • MySQL知识点
    1、慢sql优化问题分页查询中的慢查询优化问题:select*fromempwhereename='svZLER'limit10000,10;//这条语句消耗51sselect*fromempwhereidin(select......
  • MySQL进阶sql语句①
    一.MySQL进阶查询1.1排序(orderby)①使用orderby语句进行排序ASC:升序,默认的排序,使用orderby时,会默认该排序DESC:降序排序可针对对一个或多个字段,多字段要第一个字......
  • CentOs 8 安装Mysql
    1.安装数据库wgethttps://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpmrpm-ivhmysql80-community-release-el7-1.noarch.rpmyuminstallmysql-serv......
  • cpp mysql libmysqlcppconn-dev create table and insert multiple values into the t
    //Util.h#pragmaonce#include<chrono>#include<ctime>#include<dirent.h>#include<fstream>#include<iostream>#include<thread>#include<unistd.h>#inc......
  • MySQL高可用之MHA集群
    一、MHA概述1.1什么是MHAMHA(MasterHighAvailability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。MHA的出现就是解决MySQL单点故障的问题。MySQL故......
  • MySQL高级语言(二)
    一、视图1、VIEW1.1概念可以被当作是虚拟表或存储查询视图跟表格的不同是,表格中有实际储存资料,而视图是建立在表格之上的一个架构,它本身并不实际储存资料。临时表在......
  • MySQL知识点
    目录一、存取数据的演变史1、文本文件2、软件开发目录规范3、数据库服务(重点)1.数据库管理软件的由来①程序所有的组件就不可能运行在一台机器上②数据安全问题③并发总结......
  • 2.操作数据库(MySql中语句不区分大小写)
    操作数据库→操作数据库中的表→操作数据库中表的数据1.操作数据库1.创建数据库CREATEDATABASE[IFNOTEXISTS]westos--[]代表可选的,写不写都行2.删除数据库DRO......
  • podman 安装 MySQL8
    如何在测试环境下,快速创建一个MySQL环境呢?容器化是个不错的选择。拉取MySQL镜像[root@node11~]#podmanpullmysql✔docker.io/library/mysql:latestTryingtopu......
  • MySQL的高可用MHA
    一、MySQLMHA1、MHA概念MHA(MasterHighAvailability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。MHA的出现就是解决MySQL单点的问题。MySQL故障切......