在 Rust 中,你可以使用 rusqlite
crate 来与 SQLite 数据库进行交互。以下是一个示例,演示如何创建一个 SQLite 数据库,并批量插入不重复的关键词。
步骤 1:添加依赖项
在你的 Cargo.toml
文件中添加 rusqlite
依赖项:
[dependencies]
rusqlite = "0.26"
步骤 2:编写示例代码
在 src/main.rs
文件中编写代码,演示如何创建 SQLite 数据库,并批量插入不重复的关键词:
src/main.rs
use rusqlite::{params, Connection, Result};
fn main() -> Result<()> {
// 创建或打开数据库
let conn = Connection::open("keywords.db")?;
// 创建表
conn.execute(
"CREATE TABLE IF NOT EXISTS keywords (
id INTEGER PRIMARY KEY,
keyword TEXT NOT NULL UNIQUE
)",
[],
)?;
// 要插入的关键词列表
let keywords = vec!["rust", "sqlite", "database", "rust", "programming"];
// 开始事务
let tx = conn.transaction()?;
for keyword in keywords {
// 插入关键词,忽略重复项
tx.execute(
"INSERT OR IGNORE INTO keywords (keyword) VALUES (?1)",
params![keyword],
)?;
}
// 提交事务
tx.commit()?;
// 查询并打印所有关键词
let mut stmt = conn.prepare("SELECT id, keyword FROM keywords")?;
let keyword_iter = stmt.query_map([], |row| {
Ok(Keyword {
id: row.get(0)?,
keyword: row.get(1)?,
})
})?;
for keyword in keyword_iter {
println!("Found keyword {:?}", keyword?);
}
Ok(())
}
#[derive(Debug)]
struct Keyword {
id: i32,
keyword: String,
}
解释
导入模块:
- 使用
use rusqlite::{params, Connection, Result};
导入所需的模块。
- 使用
创建或打开数据库:
- 使用
Connection::open("keywords.db")?
创建或打开名为keywords.db
的 SQLite 数据库。
- 使用
创建表:
- 使用
conn.execute
方法创建一个名为keywords
的表,其中包含id
和keyword
两列。keyword
列设置为唯一,以确保关键词不重复。
- 使用
批量插入关键词:
- 使用
conn.transaction()?
开始一个事务。 - 使用
tx.execute
方法插入关键词,并使用INSERT OR IGNORE
语句忽略重复项。 - 使用
tx.commit()?
提交事务。
- 使用
查询并打印所有关键词:
- 使用
conn.prepare
方法准备一个查询语句。 - 使用
stmt.query_map
方法执行查询,并将结果映射到Keyword
结构体。 - 使用
for
循环迭代查询结果,并打印每个关键词。
- 使用
编译和运行
- 在项目根目录下运行
cargo build
进行编译。 - 编译成功后,运行
cargo run
以执行程序。
通过这些步骤,你可以在 Rust 中使用 rusqlite
crate 创建一个 SQLite 数据库,并批量插入不重复的关键词。如果你遇到任何问题,请确保你已经正确配置了 Rust 项目,并且 rusqlite
crate 已正确安装。
如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!
txttool.com 说一段 esp56物联 查询128 IP查询