微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Cocos2d-x中使用SQLlite数据库

sqlite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多@L_404_3@中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百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);
	
    //如果创建表失败
    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);
	
    //当向表中插入数据失败时
    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);




版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐