在现代软件开发中,轻量级、嵌入式数据库如 SQLite 被广泛用于本地数据存储。而 Rust 作为一门内存安全、高性能的系统编程语言,正越来越受到开发者青睐。本文将带你从零开始,使用 rusqlite 这个官方推荐的 Rust SQLite 封装库,轻松实现数据库的创建、插入、查询等基本操作。
rusqlite 是一个 Rust crate(包),它为 SQLite C 库提供了安全、惯用的 Rust 接口。它支持事务、预编译语句、类型映射等功能,让 Rust 开发者可以像使用原生 API 一样操作 SQLite 数据库,同时享受 Rust 的内存安全保证。
首先,确保你已安装 Rust 工具链(可通过 rustup.rs 安装)。然后在终端执行以下命令创建新项目:
cargo new rust_sqlite_democd rust_sqlite_demo 接着,在 Cargo.toml 文件中添加 rusqlite 依赖:
[dependencies]rusqlite = { version = "0.31", features = ["bundled"] } 其中 features = ["bundled"] 表示自动编译并链接 SQLite 源码,无需系统预先安装 SQLite 库,非常适合初学者。
打开 src/main.rs,写入以下代码:
use rusqlite::{params, Connection, Result};fn main() -> Result<()> { // 打开或创建一个名为 "users.db" 的 SQLite 数据库 let conn = Connection::open("users.db")?; // 创建 users 表 conn.execute( "CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, age INTEGER )", [], // 无参数 )?; println!("✅ 数据库和表创建成功!"); Ok(())} 这段代码会创建一个名为 users.db 的数据库文件,并在其中创建 users 表(如果不存在)。字段包括 id(主键)、name 和 age。
在 main 函数中继续添加插入逻辑:
// 插入一条用户记录conn.execute( "INSERT INTO users (name, age) VALUES (?1, ?2)", params!["张三", 28],)?;println!("✅ 用户数据插入成功!"); 这里使用了 params! 宏来安全地绑定参数,防止 SQL 注入。
最后,我们查询所有用户并打印出来:
// 查询所有用户let mut stmt = conn.prepare("SELECT id, name, age FROM users")?;let user_iter = stmt.query_map([], |row| { Ok(( row.get::<_, i32>(0)?, row.get::<_, String>(1)?, row.get::<_, i32>(2)?, ))})?;println!("\n📋 当前用户列表:");for user in user_iter { let (id, name, age) = user?; println!("ID: {}, 姓名: {}, 年龄: {}", id, name, age);} 将以上步骤整合,完整的 main.rs 如下:
use rusqlite::{params, Connection, Result};fn main() -> Result<()> { let conn = Connection::open("users.db")?; conn.execute( "CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, age INTEGER )", [], )?; conn.execute( "INSERT INTO users (name, age) VALUES (?1, ?2)", params!["张三", 28], )?; let mut stmt = conn.prepare("SELECT id, name, age FROM users")?; let user_iter = stmt.query_map([], |row| { Ok(( row.get::<_, i32>(0)?, row.get::<_, String>(1)?, row.get::<_, i32>(2)?, )) })?; println!("✅ 操作完成!"); println!("\n📋 用户列表:"); for user in user_iter { let (id, name, age) = user?; println!("ID: {}, 姓名: {}, 年龄: {}", id, name, age); } Ok(())} 在项目根目录执行:
cargo run 你将看到类似如下输出:
✅ 操作完成!📋 用户列表:ID: 1, 姓名: 张三, 年龄: 28 通过本教程,你已经掌握了如何使用 Rust 和 rusqlite 库进行基本的 SQLite数据库操作。无论是开发桌面应用、命令行工具还是嵌入式系统,这种轻量级的数据持久化方案都非常实用。
记住,rusqlite 还支持更多高级功能,如事务、自定义函数、BLOB 处理等。建议查阅其 官方文档 深入学习。
关键词:Rust, rusqlite, SQLite数据库操作, Rust SQLite教程
本文由主机测评网于2025-12-12发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025126639.html