赞
踩
更多笔记内容可以查看 计算机专业基础笔记目录
理解嵌入式软件移植的基本方法,掌握 sqlite 数据库软件移植的步骤,掌握 sqlite 开发的两种方式 — 命令模式和 C代码开发模式 的使用方法,并编程实现简单通讯录查询实验。
实验4.1 移植嵌入式数据库 sqlite
实验4.2 简单通讯录查询实例设计和测试
Linux 使用、数据库相关知识等
硬件:ARM 嵌入式开发平台、PC 机 Pentium100 以上、串口线。
软件: WinXP 或 UBUNTU 开发环境。(我用的 DeepIn)
第一步,解压缩 sqlite 源码,命令 tar xvzf sqlite-autoconf-3080900.tar.gz
;
在解压后的文件夹下,可以看到源码文件有(shell.c)和(sql3.c)文件;
生成 Makefile 的配置脚本文件 ./configure --prefix=/opt/sqlite
,
并检查当前文件夹下(存在)Makefile 文件。(可以仔细看看上上张图,那时候还没有呢。)
第二步利用 configure 脚本文件生成基于 ARM 实验台的 Makefile,具体命令为 ./configure CC=arm-linux-gcc –prefix=/opt/sqlite –host=arm-linux
,并检查当前文件夹下(存在)Makefile 文件。
第三步,编译 sqlite,命令为 make
,编译过程中使用的编译器为 arm-linux-gcc
。
第四步,安装 sqlit,命令为 make insatll
。安装完成后到 \opt\sqlite
文件夹下去查看相关文件,可以看到该文件夹下有(bin)、(include)、(lib)和 share 文件夹,其中可执行文件 sqlite3 位于(./bin)文件夹,库位于(./lib)文件夹。
第五步,将 sqlite3 拷贝到开发板 bin 目录下,将库下的文件拷贝到开发板的 lib 目录下【注意链接文件的创建】
在超级终端环境下创建数据库 stucomm.db,命令为 ./sqilte3 stucomm.db
;
(如果没有配置环境变量则要在 /opt/sqlite/bin
目录下输入命令)
创建数据表 stutable,字段包括 id 整型,name 字符型,phoneNum 字符型,具体命令为:
create table stutable(id integer, name text, phoneNum text);
插入2条记录,记录信息如下(001,zhangsan,10086)、(002,lisi,10000),具体命令为:
insert into stutable values(1, 'zhangsan', 10086);
insert into stutable values(2, 'lisi', 10000);
查询电话号码为 10086 的相关记录信息,命令为:
select * from stutable where phoneNum = 10086;
使用 C编程模式 完成上述功能,代码如下:
#include<stdio.h> #include"sqlite/sqlite3.h" /* (1)打开数据库: int sqlite3_open(const char *filename, sqlite3 **ppDb); - filename:待打开(创建)的数据库文件名 - ppDb:sqlite3数据库句柄的指针 (2)操作数据库:sqlite可以提供了接口,可以把SQL操作语句直接嵌入到sqlite函数中来执行。 int sqlite3_exec(sqlite3* ppDb, const char *sql, int(*callback)(void*, int, char**, char**), void*, char **errmsg); - sqlite3* 是open函数得到的指针 - constchar*sql是一条sql 语句,以\0结尾 - sqlite3_callback 是回调,当这条语句执行之后,sqlite3会去调用这个函数 - void*是调用者所提供的指针, 调用者可以传递任何一个指针参数到这里, 这个参数最终会传到回调函数里面, 如果不需要传递指针给回调函数,可以填 NULL - char** errmsg 是错误信息 (3)关闭数据库:数据库不使用后需要关闭。 int sqlite3_close(sqlite3 *ppDb); */ // 回调函数 int callback(void *, int, char**, char**); // 检查数据库操作是否正常执行 int check_opt(sqlite3 *db, int nResult, char* errmsg) { sqlite3_close(db); // 关闭数据库 printf("%s", errmsg); sqlite3_free(errmsg); return 0; } int main() { sqlite3 * db; // 打开内存数据库 int nResult = sqlite3_open(":memory:", &db); if (nResult != SQLITE_OK) { printf("打开数据库失败\n"); return 0; } else { printf("打开数据库成功\n"); } // 错误信息 char* errmsg; nResult = sqlite3_exc(db, "create table stutable(id integer, name text, phoneNum text);", NULL, NULL, &errmsg); check_opt(db, nResult, &errmsg); // 检查操作是否正常执行 nResult = sqlite3_exc(db, "insert into stutable values(1, 'zhangsan', 10086);", NULL, NULL, &errmsg); check_opt(db, nResult, &errmsg); // 检查操作是否正常执行 nResult = sqlite3_exc(db, "insert into stutable values(1, 'zhangsan', 10086);", NULL, NULL, &errmsg); check_opt(db, nResult, &errmsg); // 检查操作是否正常执行 nResult = sqlite3_exec(db, "select * from stutable where phoneNum = 10086;", callback, NULL, &errmsg); check_opt(db, nResult, &errmsg); // 检查操作是否正常执行 int callback(void*, int nCount, char** pValue, cahr** pName) { for (int i = 0; i < nCount; i++) { printf("[%s] = [%s]\n", pName[i], pValue[i]); } return 0; } }
假设上述代码文件名为 sqlite_exp.c 文件,编译命令为:
arm-linux-gcc -o sql_exp sqlite_exp.c -l /opt/sqlite/include -L /opt/sqlite/lib
其中头文件位于 /opt/sqlite/include,库位于 /opt/sqlite/lib 下。
以上内容只是为了完成实验的报告。。。如果实际开发的话,我个人不推荐这么复杂的方式。
介绍一个更简洁的安装方法,在终端下输入以下命令:
sudo apt-get install sqlite3
之后在终端下输入如下命令,查看下安装好的 sqlite 的版本:
sqlite3 -version
然后安装 Sqlite3 编译需要的工具包:需要的话可以安装,非必要组件。
sudo apt-get install libsqlite3-dev
快速入门:
创建 Databases 文件夹:mkdir Databases
进入 Databases 文件夹:cd Databases/
sqlite3 test.db
:若目录下存在 test.db 文件,则会打开该数据库文件,若不存在,则会创建一个数据库文件,并进入数据库操作。
查看数据库:.database
创建数据表:create table student(name varchar(10), age smallint);
查看数据表:.table
插入数据:
insert into student values('fck', 21);
insert into student values("shit",20);
查询数据:select * from student;
删除数据表:drop table student
退出数据库:.exit;
删除数据库:SQLite 无法同其他数据库那样删除数据库文件,即 DROP DATABASE test;
无效,但是我们可以直接像删除文件一样删除数据库文件,在 /Databases 目录下删除 test.db 文件即可。
安装其它语言的支持:
sudo apt-get install php5-sqlite
sudo apt-get install libsqlite3-ruby
sudo apt-get install python-pysqlite2
安装数据库可视化工具 sqlitebrowser:sudo apt-get install sqlitebrowser
sqlitebrowser 用法: sqlitebrowser test.db
吐槽:不是我说。。。学校这教材和实验都是百年不更新的么…
将 qt-sdk-linux-x86-opensource-2010.05.1.bin 拷贝到 /opt 目录下:
切换到命令行模式下,执行安装:
chmod 777 qt-sdk-linux-x86-opensource-2010.05.1.bin
./qt-sdk-linux-x86-opensource-2010.05.1.bin
跳出安装界面,一路下一步即可。
QTDIR=/opt/qtsdk-2010.05/qt
PATH=$QTDIR/bin:$PATH
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export QTDIR PATH_LIBRARY_PATH
具体开发过程就不写了…按照教程来即可(这份不要求交报告,就不写了)
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。