ESP32 Arduino SQLite3 库使用教程
1. 项目的目录结构及介绍
目录结构
esp32_arduino_sqlite3_lib/
├── examples/
│ ├── sqlite3_sdmmc/
│ ├── sqlite3_spiffs/
│ └── ...
├── src/
│ ├── sqlite3.c
│ ├── sqlite3.h
│ └── ...
├── README.md
├── LICENSE
└── ...
目录介绍
- examples/: 包含示例代码,展示了如何在不同的存储介质(如SPIFFS和SD卡)上使用SQLite3数据库。
- sqlite3_sdmmc/: 使用SDMMC 4位模式的示例。
- sqlite3_spiffs/: 使用SPIFFS的示例。
- src/: 包含SQLite3库的核心源文件和头文件。
- sqlite3.c: SQLite3的核心实现文件。
- sqlite3.h: SQLite3的头文件。
- README.md: 项目说明文档,包含安装和使用说明。
- LICENSE: 项目许可证文件,采用Apache-2.0许可证。
2. 项目的启动文件介绍
启动文件
项目的启动文件通常是指示例代码中的主文件,例如在examples/sqlite3_spiffs/
目录下的sqlite3_spiffs.ino
文件。
启动文件介绍
#include <Arduino.h>
#include <SPI.h>
#include <FS.h>
#include <SPIFFS.h>
#include "sqlite3.h"
void setup() {
// 初始化SPIFFS
if (!SPIFFS.begin(true)) {
Serial.println("SPIFFS初始化失败");
return;
}
// 打开或创建数据库文件
sqlite3 *db;
int rc = sqlite3_open("/spiffs/test.db", &db);
if (rc) {
Serial.printf("无法打开数据库: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
return;
}
// 执行SQL命令
char *zErrMsg = 0;
rc = sqlite3_exec(db, "CREATE TABLE test (id INTEGER PRIMARY KEY, name TEXT);", NULL, 0, &zErrMsg);
if (rc != SQLITE_OK) {
Serial.printf("SQL错误: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
}
// 关闭数据库
sqlite3_close(db);
}
void loop() {
// 主循环
}
启动文件功能
- 初始化SPIFFS: 确保文件系统初始化成功。
- 打开或创建数据库文件: 使用
sqlite3_open
函数打开或创建数据库文件。 - 执行SQL命令: 使用
sqlite3_exec
函数执行SQL命令,例如创建表。 - 关闭数据库: 使用
sqlite3_close
函数关闭数据库连接。
3. 项目的配置文件介绍
配置文件
在ESP32 Arduino SQLite3库中,配置文件通常是指示例代码中的配置部分,例如在examples/sqlite3_spiffs/
目录下的sqlite3_spiffs.ino
文件中的配置部分。
配置文件介绍
// 配置SPIFFS
#define FORMAT_SPIFFS_IF_FAILED true
// 配置数据库文件路径
#define DB_PATH "/spiffs/test.db"
配置文件功能
- FORMAT_SPIFFS_IF_FAILED: 如果SPIFFS初始化失败,是否格式化SPIFFS。
- DB_PATH: 数据库文件的路径,用于指定数据库文件的存储位置。
通过这些配置,可以灵活地调整数据库文件的存储位置和SPIFFS的初始化行为。