Rust 连接 SQLite 数据库
使用 Rust 语言连接操作 SQLite 数据库,我使用 rusqlite 这个 crate。
看例子:
首先,使用 cargo 创建一个 Rust 项目,然后添加依赖 rusqlite:
![8
9
dependencies]
rusqtite =](https://img.yipin100.com/p.php?img=//img.1024sou.com/blog/986268/202201/986268-20220121212353927-1347952339.png)
来到 main.rs,其余所有的代码都写在这里。
首先引入 rusqlite 相关的类型,并建立一个 Person struct:
![@ main.rs U X
src > @ main.rs > ?
1
2
3
4
5
6
7
8
use rusqlite :: {params,
?derive(Debug)]
struct Person {
id: i32,
name: String,
Connection ,
Result};
data: Option<Vec<u8>>,](https://img.yipin100.com/p.php?img=//img.1024sou.com/blog/986268/202201/986268-20220121212354256-1088122878.png)
Person 有三个字段,id、name 和 data,其实本例中,我们只会用到前两个字段。
下面,编写一个用来创建数据库和 person 表的函数:

该函数会创建名为 data.db 的数据库文件(如果不存在的话),然后打开一个数据库lian jie,并删除 person 表(如果存在的话),然后再建立一个 person 表,最后将 Connection 返回。
接下来,我们再创建一个 insert_data 函数,它用来插入两条数据,它使用 create_db 函数返回的 Connection 的引用作为参数:

再创建一个可以从数据库查询数据的函数 get_data,它会返回一个 Person 的 Vec:

最后,我们在 main 函数里依次调用这些函数,并把从数据库读取的数据进行打印:

运行结果:
![(base) solenovex@yangxus—MacBook—Pro—15 sqlite % cargo run
Compiling
Finished
Running
Person {
Person {
sqlite v0.1.0 (/Users/s01enovex/Projects/sq1ite)
dev [unoptimized + debuginfo] target(s) in 0.40s
Hi:
Hi:
target/ debug/sqlite
id: 1, name:](https://img.yipin100.com/p.php?img=//img.1024sou.com/blog/986268/202201/986268-20220121212354140-1290440976.png)