Linux 数据库 - SQlite移植与API使用
应用场景
- 嵌入式环境(ARM + Linux)
- 不具备数据库(database)功能的 RTOS 系统
终极目标
- 我不管!!代码要优雅QAQ!
操作步骤
前期准备
- 一双灵巧的手 和 一个灵活的脑子
- 一台能编译的服务器
第一步: 获取 SQlite 源码
https://sqlite.org/download.html
点进去(★ ω ★), 下载 sqlite-autoconf-xxx.tar.gz 版本, 并且放到服务器上
第二步: 编译和移植 SQlite
- 配置
./configure --host=arm-buildroot-linux-gnueabihf --prefix=./build
- 编译 和 安装
make -j8
make install
- 在目标板进行初步测试
如果 rootfs 是只读并且无法修改, 请重新打包固件, 将 /build/bin 和 /build/lib 放入指定目录
显示以上信息代表您成功啦(★ ω ★)
第三步: 编写代码在嵌入式环境测试
- SQlite 原语
CREATE: 创建原语
语法: CREATE TABLE <TABLE_NAME>(TYPE KEY1, TYPE KEY2,...);
TPYE:
REAL: 浮点型
INTEGER: 整型
VARCHAR(x): 字符型
INSERT:插入原语
语法: INSERT INTO \"<TABLE_NAME>\" VALUES(VAL1, VAL2, ...)
DELETE:删除原语
语法: DELETE FROM <TABLE_NAME> WHERE <COND_EXP>
<COND_EXP>: 条件表达式, 例如 KEY = 1.
SELECT:查找原语
语法: SELECT <COND_EXP> FROM <TABLE_NAME>
<COND_EXP> 条件表达式, 例如 '*' 通配符.
- 示例代码
源码可以通过以下 git 方式获取
/*
* Copyright (C) 2012 The iFinelio Tower
* Of course, you can contact me through email if you have any questions
*
* E-mail: <iFinelio Tower>308662170@qq.com
*
* You can obtain the source code in the following ways:
* git clone https://github.com/iFinelioTower/CSDN -b sqlite
*
* The source code only with learning, Thank you for watching.
*/
#ifndef __SQLITE_API_H__
#define __SQLITE_API_H__
#include <string.h>
#include <unistd.h>
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
#include <sqlite3.h>
#define SQLITE_OPEN(path, db) sqlite3_open_v2(path, db, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL)
#define SQLITE_CLOSE(db) sqlite3_close_v2(db)
#endif //__SQLITE_API_H__