在Cocos2d-x中使用SQLlite数据库

From: http://www.jb51.cc/article/p-zybvnkge-za.html

SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口‘


在Cocos2d-X中使用SQLlite数据库

首先下载SQLlite数据库,SQLlite数据库的下载地址:http://download.csdn.net/detail/u010105970/8168569

下载完成后会得到一个压缩文件


解压后,文件夹中有3个文件sqlite3.c、sqlite3.h、sqlite3ext.h

创建一个Cocos2d-X工程,将这三个文件放在在工程目录下的Classes文件中


在程序中执行下面的代码创建SQLlite数据库

  1. //创建sqlite数据库
  2. sqlite3*pSqlite;
  3. //打开sqlite数据库
  4. intret=sqlite3_open("mydb",&pSqlite);
  5. //当sqllite数据库打开失败时
  6. if(ret!=SQLITE_OK)
  7. {
  8. //获得sqltite数据库打开错误的信息
  9. constchar*errmsg=sqlite3_errmsg(pSqlite);
  10. //打印数据库打开失败的信息
  11. CCLog("sqliteopenerror:%s",errmsg);
  12. returnfalse;
  13. }

执行成功后会看到工程目录下的Resource文件夹中有一个mydb文件,mydb文件中保存的是SQLlite数据库信息

执行下面的代码实现创建表

  1. //创建表
  2. //第一个参数:打开的数据库
  3. //第二个参数:SQL语句
  4. ret=sqlite3_exec(pSqlite,"createtableTUSER(idinteger,nametext,passwordtext)",NULL,NULL);
  5. //如果创建表失败
  6. if(ret!=SQLITE_OK)
  7. {
  8. //得到创建表失败的信息
  9. constchar*errmsg=sqlite3_errmsg(pSqlite);
  10. //打印创建表失败的信息
  11. CCLog("sqliteexecerror:%s",errmsg);
  12. returnfalse;
  13. }

执行下面的代码向表中插入数据

  1. //向表中插入数据
  2. ret=sqlite3_exec(pSqlite,"insertintoTUSERvalues(1,'xueguoliang','password')",NULL);
  3. //当向表中插入数据失败时
  4. if(ret!=SQLITE_OK)
  5. {
  6. //得到向表中插入数据失败的信息
  7. constchar*errmsg=sqlite3_errmsg(pSqlite);
  8. //打印插入数据失败的信息
  9. CCLog("sqliteinserterror:%s",errmsg);
  10. returnfalse;
  11. }


查询表中的数据

  1. //查询数据
  2. //查询用户名为xueguoliang的用户信息
  3. ret=sqlite3_exec(pSqlite,"select*fromTUSER",selectCallback,"xueguoliang",NULL);


查询数据的回调函数

  1. //查询数据的回调函数
  2. intselectCallback(void*key,intc,char**value,char**cols)
  3. {
  4. for(inti=0;i<c;i++)
  5. {
  6. CCLog("%s=%s",cols[i],value[i]);
  7. }
  8. CCLog("");
  9. if(strcmp(value[1],(char*)key)==0)
  10. {
  11. return-1;
  12. }
  13. return0;
  14. }


查询的数据


关闭SQLlite数据库

  1. //关闭数据库
  2. sqlite3_close(pSqlite);

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...