南京邮电大学嵌入式系统开发实验3:嵌入式数据库sqlite移植及使用
实验3 嵌入式数据库sqlite移植及使用一.实验目的理解嵌入式软件移植的基本方法,掌握sqlite数据库软件移植的步骤,掌握sqlite开发的两种方式—命令模式和C代码开发模式的使用方法,并编程实现简单通讯录查询实验。二.实验内容实验3.1 移植嵌入式数据库sqlite实验3.2 简单通讯录查询实例设计和测试三.预备知识Linux使用、数据库相关知识等四.实验设备及工具(包括软件调试工具)硬件:
实验3 嵌入式数据库sqlite移植及使用
一.实验目的
理解嵌入式软件移植的基本方法,掌握sqlite数据库软件移植的步骤,掌握sqlite开发的两种方式—命令模式和C代码开发模式的使用方法,并编程实现简单通讯录查询实验。
二.实验内容
实验3.1 移植嵌入式数据库sqlite
实验3.2 简单通讯录查询实例设计和测试
三.预备知识
Linux使用、数据库相关知识等
四.实验设备及工具(包括软件调试工具)
硬件:ARM 嵌入式开发平台、PC 机Pentium100 以上、串口线。
软件: WinXP或UBUNTU开发环境。
五.实验步骤
5.1 移植嵌入式数据库sqlite
步骤【参看教材103页】:
第一步,解压缩sqlite源码,命令 tar xzvf sqlite-autoconf-3080900.tar.gz ,在解压后的文件夹下,可以看到源码文件有 shell.c和 sqlite.c 文件,生成Makefile的配置脚本文件 configure.ac ,并检查当前文件夹下 A.存在 (A.存在 B.不存在)Makefile文件。
第二步利用configure脚本文件生成基于ARM实验台的Makefile,具体命令为 ./configure --prefix=/opt/sqlite (假设安装目录为/opt/sqlite),并检查当前文件夹下 A.存在 (A.存在 B.不存在)Makefile文件。
第三步,编译sqlite,命令为 make ,编译过程中使用的编译器为 gcc 。
第四步,安装sqlite,命令为make install。安装完成后到 /opt/sqlite 文件夹下去查看相关文件,可以看到该文件夹下有bin、include、lib和share文件夹,其中可执行文件sqlite3位于 bin 文件夹,库位于 lib 文件夹。
第六步,数据库的使用
备注:sqlite使用在嵌入式开发板和PC机没有任何区别,所以下面的实验在PC机上完成
具体使用命令请参考:http://blog.csdn.net/sphone89/article/details/9300797
方式1:命令操纵数据库
在超级终端环境下创建数据库stucomm.db,命令为 ./sqilte3 stucomm.db或者./sqilte3 stu.db __;
创建数据表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;
方式2:编程操纵数据库
使用C编程模式完成上述功能,代码如下:
#include “sqlite3.h”
int main(int argc, char** argv)
{
sqlite3 * db = NULL;
char* zErrMsg = NULL;
int rc;
sqlite3_open( “:memory:”, &db ); //打开内存数据库
rc = sqlite3_exec(db, “create table employee(id integer primary key, age integer);”, NULL, 0, &zErrMsg); //创建数据库
for( int i= 0; i < 10; i++ )
{
statement = sqlite3_mprintf( "insert into employee values(%d, %d);”, NULL, 0, &zErrMsg, rand()%65535, rand()%65535 );
rc = sqlite3_exec( db, statement, NULL, 0 , 0 ); //插入数据
sqlite3_free( statement );
}
rc = sqlite3_exec(db, “select * from employee;” , callback, 0, &zErrMsg ); //查询,并调用回调函数
sqlite3_close(db);
}
假设上述代码文件名为sqlite_exp.c文件,编译命令为__arm-linux-gcc -o sqlite_exp sqlite_exp.c___,其中头文件位于/opt/sqlite/include,库位于/opt/sqlite/lib下。
更多推荐
所有评论(0)