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

rust操作mysql增删改查

时间:2024-10-19 11:36:25浏览次数:1  
标签:unwrap pool 改查 num let rust mysql id conn

toml

[dependencies]
mysql = "25.0.0"
[[bin]]
name = "mysql"
path = "src/mysql.rs"

mysql.rs

use mysql::*;
use mysql::prelude::*;

fn main() {
    let url = "mysql://root:root@localhost:3306/fiber";
    let pool = Pool::new(url).unwrap();
    
    let id =  insert_data(&pool, "Test Data", 100);
    println!("ID: {}", id);
    let del =  delete_data(&pool, 1);
    println!("del: {}", del);
    let upes = update_data(&pool, id as i32, "Updated Test Data", 200);
    println!("upes: {}", upes);
    let results =  query_data(&pool);
    for row in results {
                let id: i32 = row.0; // 获取列 id 的值
                let test: String = row.1; // 获取列 test 的值
                let num: i32 = row.2; // 获取列 num 的值
        
                println!("ID: {}, Test: {}, Num: {}", id, test, num);
            }
}

pub fn insert_data(pool: &Pool, test: &str, num: i32) -> u64 {
    let mut conn = pool.get_conn().unwrap();
    let stmt = conn.prep("INSERT INTO fiber_user (test, num) VALUES (?,?)").unwrap();
    conn.exec_drop(&stmt, (test, num)).unwrap();
    return conn.last_insert_id();
}

pub fn delete_data(pool: &Pool, id: i32) -> u64 {
    let mut conn = pool.get_conn().unwrap();
    let stmt = conn.prep("DELETE FROM fiber_user WHERE id = ?").unwrap();
    conn.exec_drop(&stmt, (id,)).unwrap();
    return conn.affected_rows();
}

pub fn update_data(pool: &Pool, id: i32, test: &str, num: i32) -> u64 {
    let mut conn = pool.get_conn().unwrap();
    let stmt = conn.prep("UPDATE fiber_user SET test = ?, num = ? WHERE id = ?").unwrap();
    conn.exec_drop(&stmt, (test, num, id)).unwrap();
    return  conn.affected_rows();
}

pub fn query_data(pool: &Pool) -> Vec<(i32, String, i32)> {
    let mut conn = pool.get_conn().unwrap();
    let results: Vec<(i32, String, i32)> = conn.query("SELECT id, test, num FROM fiber_user").unwrap();
    return  results;
}

执行

cargo run --bin mysql

标签:unwrap,pool,改查,num,let,rust,mysql,id,conn
From: https://www.cnblogs.com/qcy-blog/p/18475689

相关文章

  • 我在查询SQL的时候也可以使用反引号吧? 我应该也可以把mysql的已使用的关键字用反引号
    是的,您在编写查询SQL时也可以使用反引号(`)来包裹表名和字段名。反引号可以帮助您避免与MySQL的保留关键字发生冲突,确保SQL语句能够正确执行。查询时使用反引号的示例如果您有一个表名或字段名与MySQL关键字相同,您可以使用反引号在查询中包裹它们:SELECT`id`,`name`,`l......
  • created_at需要是TIMESTAMP类型的,并且由mysql自动生成
    要将created_at字段设置为TIMESTAMP类型,并且让MySQL自动生成插入时的时间戳,您可以在创建表时为该字段指定默认值为CURRENT_TIMESTAMP。这样,当新记录插入时,MySQL会自动生成当前的时间戳。下面是更新后的表创建语句,包含您需要的created_at字段自动生成功能:示例表创建语......
  • 基于SpringBoot+Vue+MySQL的驾校管理系统设计与实现(源码+文档+部署视频等)
    文章目录1.前言2.详细视频演示3.程序运行示例图4.文档参考5.技术框架5.1后端采用SpringBoot框架5.2前端框架Vue5.3程序操作流程6.选题推荐7.原创毕设案例8.系统测试8.1系统测试的目的8.2系统功能测试9.代码参考10.为什么选择我?11.获取源码1.前言......
  • 基于SpringBoot+Vue+MySQL的数码论坛系统设计与实现(源码+文档+部署视频等)
    文章目录1.前言2.详细视频演示3.程序运行示例图4.文档参考5.技术框架5.1后端采用SpringBoot框架5.2前端框架Vue5.3程序操作流程6.选题推荐7.原创毕设案例8.系统测试8.1系统测试的目的8.2系统功能测试9.代码参考10.为什么选择我?11.获取源码1.前言......
  • 2024/10/18日 日志 --》关于MySQL中的 事务 以及JDBC的初步学习笔记与整理
    今天学习练习了事务的相关内容,并正式向连接数据库走近,进入到JDBC的学习。点击查看代码--事务--概念简介:是一种机制,一个操作序列,包含了一组数据库操作命令。-- 事务把所有的命令作为一个整体一起向系统提交或撤销操作请求,--即这一组数据库命令要么同时成功,要么同时失......
  • SpringBoot实现简单的增删改查(CURD)
    原文链接:SpringBoot实现简单的增删改查(CURD)–每天进步一点点(longkui.site) 前面一篇文章介绍了SpringBoot项目的创建: SpringBoot(1)—创建并运行项目这篇文章简单介绍一下SpringBoot项目的增删改查。所需工具:IDEA、java1.8、mysql0.创建项目我们通过IDEA创建项目。......
  • MYSQL-多表查询和函数
    第一题讲解#1.查出至少有一个员工的部门,显示部门编号、部门名称、部门位置、部门人数。分析: (分析要查的表): (显示的列): (关联条件): (过滤条件): [分组条件]: [排序条件]: [分页条件]: SELECT d.deptno,dname,loc,count(empno)FROMdeptdJOINem......
  • Hive为什么依赖Mysql
    Hive之所以需要MySQL依赖,主要是因为Hive使用MySQL(或其他关系型数据库)来存储其元数据。以下是详细的解释:元数据存储Hive在执行查询和存储数据时,需要维护表的结构、列的数据类型、表之间的关系、分区信息等元数据。这些元数据通常存储在一个称为Metastore的地方。为了......
  • mysql当数据库发现了慢sql怎么定位?--待验证
    1、应用侧生成链路id。使用skywalking2、mybatis写拦截器,sql里面加入链路id`@Intercepts({@Signature(type=StatementHandler.class,method="prepare",args={Connection.class,Integer.class})})publicclassSqlStatementInterceptorimplementsInterceptor{......
  • MYSQL 表对表快速迁移-直接拷贝表空间文件.ibd进行迁移
    数据无价,操作前,建议先备份前提条件表结构一致:源数据库和目标数据库中的表结构必须完全相同。这包括表的列定义、索引、约束等。表使用InnoDB存储引擎:这种迁移方法仅适用于使用InnoDB存储引擎的表,因为.ibd文件是InnoDB表的表空间文件。数据库版本兼容:源......