在第一部分的项目代码中,已经实现了在 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 的特性没有用上,后期还可以改的更好一些。