Rust Web Rokcet 系列 2 连接数据库 和 CURD 增删改查
使用的是 SQLite 数据库,实际上各种数据库都大同小异。已经有很多包帮助我们处理各种细节。目前 diesel 支持mysql,postgres和sqlite。函数使用方法一般都在鼠标移动到函数上,显示出的文档中。换句话说,在 Ctrl+左键 点击进去显示的源文件的字里行间之中。
相关文档:
https://rocket.rs/v0.5-rc/guide/state/#databases
参考写法:
https://github.com/SergioBenitez/Rocket/tree/v0.5-rc/examples/databases
安装相关工具 SQLite 和 diesel_cli
介绍一下 Windows SQLite 下安装方法 ,打开 SQLite 官网 的下载页。
https://www.sqlite.org/download.html
选择Precompiled Binaries for Windows
64位机下载sqlite-dll-win64-x64-3370200.zip 和sqlite-tools-win32-x86-3370200.zip
32位机下载sqlite-dll-win32-x86-3370200.zip和sqlite-tools-win32-x86-3370200.zip
解压这两个压缩包所有文件到一个目录,并使用 微软的 生成工具 ,在目录下执行
|
|
然后将目录加入环境变量,然后打开终端执行:
|
|
编写 SQL
打开 项目目录,执行
|
|
生成了migrations\2022-02-14-114903_article\up.sql和migrations\2022-02-14-114903_article\down.sql
然后写 up.sql 和 down.sql
migrations\2022-02-11-063903_product\up.sql
|
|
migrations\2022-02-14-114903_article\down.sql
|
|
创建项目根目录,和Cargo.toml同级。创建 .env 文件。写入
.env
|
|
然后执行
|
|
diesel会自动创建一个article.db,这就是我们之后会使用到的数据库了。除此之外,还有src\schema.rs和 diesel.toml文件。
使用数据库工具,可以看到已经成功创建了一个表
添加依赖
在Cargo.toml中添加依赖
Cargo.toml
|
|
创建Rocket.toml
Rocket.toml
|
|
然后在 main.rs 加入数据库连接,默认开启连接池。
|
|
其实 rocket_sync_db_pools::diesel 也是可用的。类似于
|
|
但是我还没弄明白如何导入 #[macro_use]
,这个宏在 src\schema.rs 中 table 用到了。有人知道的话知会我一声。这样的应该不用引入 diesel = “1.4.8” 依赖了。
CURD
然后修改 src\main.rs,src\module.rs,src\routes.rs 。
src\main.rs :
|
|
src\module.rs
|
|
src\routes.rs 简单写了 CURD ,具体可以看文档。函数使用方法一般都在鼠标移动到函数上,显示出的文档中。换句话说,在 Ctrl+左键 点击进去显示的源文件的字里行间之中。
|
|
本系列 Postman 分享链接:
https://www.getpostman.com/collections/c89ec512876818f18757
如果链接失效了,请只会一声。或 teach.postman_collection.json 如下
|
|
欢迎赞赏~
赞赏