在第一部分的項目代碼中,已經實現了在 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 的特性沒有用上,後期還可以改的更好一些。