Cocos2dx引擎笔记——SQLite集成与用法

Cocos2dx引擎笔记——SQLite集成与用法,第1张

概述在Cocos2d-x中,简单数据存储,可以使用UserDefault。而不规则的、大量的数据,则可以使用SQLite数据库存储数据。SQLite是使用非常广泛的嵌入式数据库,它有小巧 、高效、跨平台、开源免费和易 *** 作的特点。 》iOS/Mac的系统库自带sqlite库,我们只需添加  libsqlite3.0.dylib 库即可。 》 Android系统没有自带sqlite库,我们需要手动添加。 在Cocos2d-x中,简单数据存储,可以使用UserDefault。而不规则的、大量的数据,则可以使用sqlite数据库存储数据。sqlite是使用非常广泛的嵌入式数据库,它有小巧 、高效、跨平台、开源免费和易 *** 作的特点。 》iOS/Mac的系统库自带sqlite库,我们只需添加 libsqlite3.0.dylib 库即可。

》 AndroID系统没有自带sqlite库,我们需要手动添加。

1.下载sqlite包: 下载地址:http://www.sqlite.org/download.html下载后,在项目中导入sqlite3.c和sqlite3.h两个文件即可。

2.导入到工程

3.修改AndroID.mk

使用sqlite

打开HelloWorldScene.cpp文件,我们在里面加入sqlite的使用示例,引入头文件

#include "sqlite3.h"
创建sqlite 数据库
sqlite3 *pdb=NulL;//1数据库指针    std::string path= @R_404_6852@Utils::getInstance()->getWritablePath()+"save.db";//2指定数据库的路径    std::string sql;    int result;    result=sqlite3_open(path.c_str(),&pdb);//3打开一个数据库,如果该数据库不存在,则创建一个数据库文件    if(result!=sqlITE_OK)    {        log("open database Failed,number%d",result);    }
创建表SQL语句
sql="create table student(ID integer primary key autoincrement,name text,sex text)";
result=sqlite3_exec(pdb,sql.c_str(),NulL,NulL);//1创建表    if(result!=sqlITE_OK)        log("create table Failed");
插入数据
sql="insert into student  values(1,'student1','male')";    result=sqlite3_exec(pdb,NulL);    if(result!=sqlITE_OK)        log("insert data Failed!");    sql="insert into student  values(2,'student2','female')";    result=sqlite3_exec(pdb,NulL);    if(result!=sqlITE_OK)        log("insert data Failed!");    sql="insert into student  values(3,'student3',NulL);    if(result!=sqlITE_OK)        log("insert data Failed!");
查询
char **re;//查询结果    int r,c;//行、列    sqlite3_get_table(pdb,"select * from student",&re,&r,&c,NulL);//1查询表中的数据    log("row is %d,column is %d",r,c);    for(int i=1;i<=r;i++)//2将查询结果的log输出    {        for(int j=0;j<c;j++)        {            log("%s",re[i*c+j]);        }    }    sqlite3_free_table(re);

查询结果:

cocos2d: row is 3,column is 3cocos2d: 1cocos2d: student1cocos2d: malecocos2d: 2cocos2d: student2cocos2d: femalecocos2d: 3cocos2d: student3cocos2d: male
删除
sql="delete from student where ID=1";    result=sqlite3_exec(pdb,NulL);//1删除ID=1的学生    if(result!=sqlITE_OK)        log("delete data Failed!");

cocos2d: row is 2,column is 3cocos2d: 2cocos2d: student2cocos2d: femalecocos2d: 3cocos2d: student3cocos2d: male 注意:

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

sqlite3_close(pdb);
数据文件存放的位置
AndroID:      /data/data/com.youCompany.Helloworld/@R_404_6852@s/save.db
iOS位于程序沙盒的文档目录下:    ../documents/save.db
声明:本文是对http://www.cocos.com/帮助文档的阅读笔记。
总结

以上是内存溢出为你收集整理的Cocos2dx引擎笔记——SQLite集成用法全部内容,希望文章能够帮你解决Cocos2dx引擎笔记——SQLite集成与用法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1070793.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存