rust 创建 sqlite 批量插入 关键词 不重复

180it 2024-10-13 AM 71℃ 0条

在 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,
}

解释

  1. 导入模块

    • 使用 use rusqlite::{params, Connection, Result}; 导入所需的模块。
  2. 创建或打开数据库

    • 使用 Connection::open("keywords.db")? 创建或打开名为 keywords.db 的 SQLite 数据库。
  3. 创建表

    • 使用 conn.execute 方法创建一个名为 keywords 的表,其中包含 idkeyword 两列。keyword 列设置为唯一,以确保关键词不重复。
  4. 批量插入关键词

    • 使用 conn.transaction()? 开始一个事务。
    • 使用 tx.execute 方法插入关键词,并使用 INSERT OR IGNORE 语句忽略重复项。
    • 使用 tx.commit()? 提交事务。
  5. 查询并打印所有关键词

    • 使用 conn.prepare 方法准备一个查询语句。
    • 使用 stmt.query_map 方法执行查询,并将结果映射到 Keyword 结构体。
    • 使用 for 循环迭代查询结果,并打印每个关键词。

编译和运行

  1. 在项目根目录下运行 cargo build 进行编译。
  2. 编译成功后,运行 cargo run 以执行程序。

通过这些步骤,你可以在 Rust 中使用 rusqlite crate 创建一个 SQLite 数据库,并批量插入不重复的关键词。如果你遇到任何问题,请确保你已经正确配置了 Rust 项目,并且 rusqlite crate 已正确安装。

支付宝打赏支付宝打赏 微信打赏微信打赏

如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!

标签: none

rust 创建 sqlite 批量插入 关键词 不重复