Cocos2d-x   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Cocos2dx引擎笔记——SQLite集成与用法大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

@H_772_3@在Cocos2d-x中,简单数据存储,可以使用UserDefault。而不规则的、大量的数据,则可以使用SQLite数据库存储数据。sqlite是使用非常广泛的嵌入式数据库,它有小巧 、高效、跨平台、开源免费和易操作的特点。@H_772_3@

》iOS/Mac的系统库自带sqlite库,我们只需添加 libsqlite3.0.dylib 库即可。@H_772_3@

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

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

2.导入到工程

3.修改Android.mk

使用SQLite

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

#include "sqlite3.h"

创建SQLite 数据库

sqlite3 *pdb=NULL;//1数据库指针
    std::string path= FileUtils::geTinstance()->getWritablePath()+"save.db";//2指定数据库的路径

    std::String sql;
    int result;
    result=sqlite3_open(path.c_str(),&pdb);//3打开一个数据库,如果该数据库不存在,则创建一个数据库文件
    if(result!=@R_360_5607@OK)
    {
        log("open database failed,number%d",result);
    }

建表sql语

sql="create table student(ID INTEGER PRIMary key autoincrement,@R_214_4687@t,sex text)";
result=sqlite3_exec(pdb,sql.c_str(),NULL,null);//1创建表
    if(result!=@R_360_5607@OK)
        log("create table failed");

插入数

sql="insert into student  values(1,'student1','male')";
    result=sqlite3_exec(pdb,null);
    if(result!=@R_360_5607@OK)
        log("insert data failed!");

    sql="insert into student  values(2,'student2','female')";
    result=sqlite3_exec(pdb,null);
    if(result!=@R_360_5607@OK)
        log("insert data failed!");

    sql="insert into student  values(3,'student3',null);
    if(result!=@R_360_5607@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 3
cocos2d: 1
cocos2d: student1
cocos2d: male
cocos2d: 2
cocos2d: student2
cocos2d: female
cocos2d: 3
cocos2d: student3
cocos2d: male

删除

sql="delete from student where ID=1";
    result=sqlite3_exec(pdb,null);//1删除ID=1的学生
    if(result!=@R_360_5607@OK)
        log("delete data failed!");

cocos2d: row is 2,column is 3 cocos2d: 2 cocos2d: student2 cocos2d: female cocos2d: 3 cocos2d: student3 cocos2d: male

注意:

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

sqlite3_close(pdb);

数据文件存放的位置

Android:      /data/data/com.youCompany.Helloworld/files/save.db
iOS位于程序沙盒的文档目录下:    ../Documents/save.db
声明:本文是对@R_197_10107@://www.cocos.com/帮助文档的阅读笔记。

大佬总结

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

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。