banner
[面包]MrTwoC

[面包]MrTwoC

你好,欢迎来到这个基于区块链的个人博客 名字:面包 / MrTwoc 爱好:跑步(5/10KM)、拿铁咖啡、游戏(Minecraft、Warframe、CS) 兴趣方向:Rust、区块链、图形学、游戏设计与开发
bilibili
steam
email
github

2. 映画情報の維持 ( コマンドライン版 )

第一部分のプロジェクトコードでは、json ファイル内で映画情報を管理し、役割のランク付けによって映画の追加および削除操作を制限する機能が実装されています。

今回のコードはこのコースを基に、プロジェクトを workspace に変更し、映画を保存する json ファイルを sqlite ストレージに変更し、データベースを使用して追加、削除、更新、検索を行い、データベースを利用して役割の判断を行います。

具体的なコード部分は db_services.rs が元の services.rs に置き換えられています。ここには映画情報の追加、削除、更新、検索操作とユーザーの役割を識別する機能が含まれています。

また、sql_tools.rs 部分ではデータベースの初期化操作が実装されており、データベースを作成する際にいくつかのテスト用データを追加し、json ファイルを読み込んでデータベースに移行する関数が含まれています。

// db_tools.rs
// jsonファイル内のすべての映画情報をデータベースに移行する
fn json_save_to_db(conn: &Connection) -> Result<(), Box<dyn Error>> {
    let movies = read_form_json()?;
    for movie in movies {
        conn.execute(
            "INSERT INTO movies (disc, year, title, remark, user_id) VALUES (?1, ?2, ?3, ?4, ?5)",
            (movie.disc, movie.year, movie.title, movie.remark, 1),
        )?;
    }
    Ok(())
}

完全なコードはgithub リポジトリで見ることができます。

現在、rust を初学中で、書いたコードが醜いと感じており、rust の struct の特性を活かしていないため、今後はもっと良く改善できると思います。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。