数据库移植

来源:互联网 发布:努比亚专业相机软件 编辑:程序博客网 时间:2024/06/05 18:53

SQLite是一个开源的嵌入式关系数据库,我们用它来管理M0端接收的数据,将检测到的仓库信息存储起来。

一、 SQLite环境的建立:

1. 首先从下载最新版本的sqlite源码包,我下载的是sqlite-amalgamation-3.7.3.tar.gz,并将下载的文件解压。

2. 在解压生成的 sqlite-3.7.3 目录下执行./configure --host=arm-crotex_a8-linux-gnueabi --prefix=/home/linux/project/sqlite-arm,其中host为设置交叉编译器,prefix为设置存放编译生成文件的目录,sqlite-arm为跟sqlite-3.7.3同级的目录

 

arm-crotex_a8-linux-gnueabi: 编译器的版本要和内核版本一致,所以要根据自己的情况来决定。

/home/linux/project/sqlite-arm: 路径可根据自己的需要来修改。

 

3. 执行上步操作之后会生成Makefile, 打开Makefile文件,找到-DPACKAGE_STRING=\"sqlite\3.7.3\"处,把3.7.3前面的“\”和空格删除。(我使用的这个版本有个错误,其他的版本不一定有),然后直接执行make(要是这样meke有错的话,可以在make之前先make clean一下,然后在make),生成可执行文件,然后再执行make install,配置环境变量。sqlite-arm目录下会生成bin、includesharelib四个目录。

 

二、 SQLite数据库的移植:

1. 去掉/home/linux/project/sqlite-arm目录下的sqlite3的调示信息(瘦身):arm-crotex_a8-linux-gnueabi-strip sqlite3。(为了在PC环境下调试,最好备份一下sqlite3,一下瘦身的文件同理)

2. sqlite3下载到开发板的/usr/bin目录:

cp sqlite3  /source/rootfs/usr/bin

3、在/home/linux/project/sqlite-arm/lib 中找到libsqlite3.so.0.8.6这个库文件,去掉调示信息后将libsqlite3.so.0.8.6拷贝到开发板目录/usr/lib下,在开发板目录/usr/lib下创建一个符号链接:ln -s libsqlite3.so.0.8.6   libsqlite3.so.0。这样你交叉编译的程序就可以使用sqlite3数据库了。

指令如下:

/home/linux/project/sqlite-arm/lib 下:

arm-none-linux-gnueabi-strip libsqlite3.so.0.8.6

cp   libsqlite3.so.0.8.6  /source/rootfs/usr/lib

开发板目录/usr/lib下:

ln -s libsqlite3.so.0.8.6   libsqlite3.so.0

注:libsqlite3.so,libsqlite3.so.0是链接到libsqlite3.so.0.8.6的.


三、SQLite的测试:

查看“简单数据库测试程序”。

测试程序中的重点,回调函数的使用









u创建表:create table users(userid,username,password,age);
插入:insert into users(username,password,age) values('ni','12','21');
      
注释:users 有四个属性:编号、用户名、密码、年龄;
删除:delete from users where userid=4;
查找:select * from users [username='xxx'];
查找:select * from table1 where field1 like ’%value1%’
修改:update users set username='rose' where userid=3;






选择:select * from table1 where 范围
插入:insert into table1(field1,field2) values(value1,value2)
删除:delete from table1 where 范围
更新:update table1 set field1=value1 where 范围
查找:select * from table1 where field1 like ’%value1%’ 
排序:select * from table1 order by field1,field2 [desc]
总数:select count as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1

原创粉丝点击