JSRUN 用代码说话

SQlite的使用

编辑教程

SQlite的使用

在CrossApp中,简单数据存储,可以使用CAUserDefault。那么如何存储大量,不规则的数据?

可以使用SQLite数据库存储数据。SQLite是使用非常广泛的嵌入式数据库,它有小巧 、高效、跨平台、开源免费和易操作的特点。

SQLite数据库是使用C语言来编写的,在CrossApp中使用也是非常容易的。

CrossApp已经添加了SQlite的,在CrossApp\extensions\sqlite3目录,我直接使用就可以了。

引入头文件

#include "CrossAppExt.h"

创建数据库

//数据库指针
sqlite3 *pdb=NULL;

//保存数据库的路径
std::string path= CCFileUtils::sharedFileUtils()->getWritablePath()+"save.db";

std::string sql;
int result;

//打开一个数据,如果该数据库不存在,则创建一个新的数据库文件
result=sqlite3_open(path.c_str(),&pdb);

if(result!=SQLITE_OK)
{
    CCLog("open database failed,  number%d",result);
}

SQL语句

//创建数据库表的sql语句

sql="create table student(ID integer primary key autoincrement,name text,sex text)";

创建Talbe

//创建表格
result=sqlite3_exec(pdb,sql.c_str(),NULL,NULL,NULL);

if(result!=SQLITE_OK)
    CCLog("create table failed");

插入

//向表内插入3条数据
sql="insert into student  values(1,'student1','male')";

result=sqlite3_exec(pdb,sql.c_str(),NULL,NULL,NULL);

if(result!=SQLITE_OK)
   CCLog("insert data failed!");

sql="insert into student  values(2,'student2','female')";

result=sqlite3_exec(pdb,sql.c_str(),NULL,NULL,NULL);

if(result!=SQLITE_OK)
    CCLog("insert data failed!");

sql="insert into student  values(3,'student3','male')";

result=sqlite3_exec(pdb,sql.c_str(),NULL,NULL,NULL);

if(result!=SQLITE_OK)
    CCLog("insert data failed!");

查询

//查询结果
char **re;

//行、列
int r,c; 

//查询数据
sqlite3_get_table(pdb,"select * from student",&re,&r,&c,NULL);

CCLog("row is %d,column is %d",r,c);

//将查询出的数据通过log输出
for(int i=1;i<=r;i++)
{
    for(int j=0;j<c;j++)
    {
        CCLog("%s",re[i*c+j]);
    }
}

sqlite3_free_table(re);

删除

sql="delete from student where ID=1";

//删除id=1的学生的信息
result=sqlite3_exec(pdb,sql.c_str(), NULL,NULL,NULL);

if(result!=SQLITE_OK)
    CCLog("delete data failed!");

注意

使用sqlite一定要注意的内存管理问题,那就是打开数据库之后,数据操作完成之后,一定要关闭数据库,否侧会造成内存泄漏。

sqlite3_close(pdb);

SQlite保存路径

Android:

/data/data/com.youCompany.Helloworld/files/save.db

IOS:

位于程序沙盒的文档目录下

../Documents/save.db
JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。 大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
支付宝
9.99
无法付款,请点击这里
金额: 0
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟