》 Android系统没有自带sqlite库,我们需要手动添加。
1.下载sqlite包: 下载地址:http://www.sqlite.org/download.html 下载后,在项目中导入sqlite3.c和sqlite3.h两个文件即可。
2.导入到工程
3.修改Android.mk
打开HelloWorldScene.cpp文件,我们在里面加入SQLite的使用示例,引入头文件
#include "sqlite3.h"
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!=SQLITE_OK)
{
log("open database failed, number%d",result);
}
sql="create table student(ID integer primary key autoincrement,name text,sex text)";
result=sqlite3_exec(pdb,sql.c_str(),NULL,NULL,NULL);//1创建表
if(result!=SQLITE_OK)
log("create table failed");
sql="insert into student values(1,'student1','male')";
result=sqlite3_exec(pdb,sql.c_str(),NULL,NULL,NULL);
if(result!=SQLITE_OK)
log("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)
log("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)
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,sql.c_str(), NULL,NULL,NULL);//1删除ID=1的学生
if(result!=SQLITE_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
声明:本文是对http://www.cocos.com/帮助文档的阅读笔记。