SQLite集成与用法

SQLite集成与用法,第1张

概述概述 在Cocos2d-x中,简单数据存储,可以使用UserDefault。那么如何存储大量,不规则的数据?我们可以使用SQLite数据库存储数据。SQLite是使用非常广泛的嵌入式数据库,它有小巧 、高效、跨平台、开源免费和易 *** 作的特点。 SQLite数据库是使用C语言来编写的,那么在Cocos2d-x使用SQLite也是得心应手。 准备 首先创建一个Cocos2d-x v3.x的hellowo 概述

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

sqlite数据库是使用C语言来编写的,那么在Cocos2d-x使用sqlite也是得心应手。

准备

首先创建一个Cocos2d-x v3.x的helloworld工程,我们将以该工程作为sqlite集成用法的实战工程。

打开终端,使用如下命令新建工程:

1 cocos new HelloWorld -p com.your_company.HelloWorld -l cpp

按照上面的 *** 作,我们新建了一个Cocos2d-x v3.x的HelloWorld工程。

iOS/Mac

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

AndroID

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

1.下载sqlite包

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

2.导入到工程

3.修改AndroID.mk

使用sqlite

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

引入头文件

#include "sqlite3.h"
创建sqlite 数据库 1 2 3 4 5 6 7 8 9 10
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语句 1
sql= "create table student(ID integer primary key autoincrement,name text,sex text)" //1
创建表的SQL语句 创建table 3
result=sqlite3_exec(pdb,sql.c_str(),NulL,NulL); //1 (result!=sqlITE_OK) "create table Failed" );
创建表 插入数据 10 11 12 13 14
"insert into student values(1,'student1','male')" ; (result!=sqlITE_OK) "insert data Failed!" ); "insert into student values(2,'student2','female')" ; (result!=sqlITE_OK) ); "insert into student values(3,'student3',monospace!important; Font-size:1em!important; min-height:inherit!important; background:none!important">; (result!=sqlITE_OK) 向表中插入3条数据 查询 13
char **re; //查询结果 r,c; //行、列 sqlite3_get_table(pdb, "select * from student" //1 "row is %d,column is %d" for ( i=1;i<=r;i++) //2 { j=0;j<c;j++) { "%s" } } @H_689_301@ sqlite3_free_table(re);
查询表中的数据 将查询结果的log输出

查询结果:

10
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

我们可以看到查询到结果和我们前面插入的数据一样。

删除 4
"delete from student where ID=1" //1 "delete data Failed!" 删除ID=1的学生

使用上面的查询语句查询删除ID=1的学生后的数据

7
cocos2d: row is 2,monospace!important; Font-size:1em!important; min-height:inherit!important; background:none!important">cocos2d: 2 cocos2d: student2 cocos2d: female cocos2d: 3 cocos2d: student3 我们可以看到,表中ID=1的数据已经被删除了

注意:

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

sqlite3_close(pdb);
数据文件存放的位置 AndroID: /data/data/com.youCompany.Helloworld/files/save.db
iOS:

位于程序沙盒的文档目录下

../documents/save.db
总结

以上是内存溢出为你收集整理的SQLite集成与用法全部内容,希望文章能够帮你解决SQLite集成与用法所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1179950.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)