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数据库
//创建sqlite数据库
sqlite3* pSqlite;
//打开sqlite数据库
int ret = sqlite3_open("mydb", &pSqlite);
//当sqllite数据库打开失败时
if (ret != SQLITE_OK)
{
//获得sqltite数据库打开错误的信息
const char* errmsg = sqlite3_errmsg(pSqlite);
//打印数据库打开失败的信息
CCLog("sqlite open error: %s", errmsg);
return false;
}
执行成功后会看到工程目录下的Resource文件夹中有一个mydb文件,mydb文件中保存的是SQLlite数据库信息
执行下面的代码实现创建表
//创建表
//第一个参数:打开的数据库
//第二个参数:SQL语句
ret = sqlite3_exec(pSqlite, "create table TUSER (id integer, name text, password text)", NULL, NULL, NULL);
//如果创建表失败
if (ret != SQLITE_OK)
{
//得到创建表失败的信息
const char* errmsg = sqlite3_errmsg(pSqlite);
//打印创建表失败的信息
CCLog("sqlite exec error: %s", errmsg);
return false;
}
执行下面的代码向表中插入数据
//向表中插入数据
ret = sqlite3_exec(pSqlite, "insert into TUSER values(1, 'xueguoliang', 'password')", NULL, NULL, NULL);
//当向表中插入数据失败时
if (ret != SQLITE_OK)
{
//得到向表中插入数据失败的信息
const char* errmsg = sqlite3_errmsg(pSqlite);
//打印插入数据失败的信息
CCLog("sqlite insert error: %s", errmsg);
return false;
}
查询表中的数据
//查询数据
//查询用户名为xueguoliang的用户信息
ret = sqlite3_exec(pSqlite, "select * from TUSER", selectCallback, "xueguoliang", NULL);
查询数据的回调函数
//查询数据的回调函数
int selectCallback(void* key, int c, char** value, char** cols)
{
for (int i = 0; i < c; i++)
{
CCLog("%s=%s", cols[i], value[i]);
}
CCLog("");
if (strcmp(value[1], (char*)key) == 0)
{
return -1;
}
return 0;
}
查询的数据
关闭SQLlite数据库
//关闭数据库
sqlite3_close(pSqlite);