首先,将这两个文件导入到工程当中,后面会给大家下载地址,当然也可以去官网上下载。
在HelloWorldScene.h中导入头文件:
#include "sqlite3.h"
// there's no 'id' in cpp, so we recommend to return the class instance pointer static cocos2d::CCScene* scene(); //保存路径 std::string path; //sql语句 std::string sql; //数据库对象 sqlite3 *pdb; //记录返回结果是否成功 int result; //创建表 void createTable(); //插入数据 void insertData(); //查看数据 void LookUpData(); //删除数据 void deleteData();
在HelloWorldScene.cpp中插入如下代码:
// on "init" you need to initialize your instance bool HelloWorld::init() { ////////////////////////////// // 1. super init first if ( !CCLayer::init() ) { return false; } pdb=NULL; CCLabelTTF* createLabel = CCLabelTTF::create("创建表", "Arial", 24); CCMenuItemLabel* createItem = CCMenuItemLabel::create(createLabel, this, menu_selector(HelloWorld::createTable)); CCMenu* createMenu = CCMenu::create(createItem,NULL); createMenu->setPosition(ccp(100, 300)); this->addChild(createMenu); CCLabelTTF* insertLabel = CCLabelTTF::create("插入数据", "Arial", 24); CCMenuItemLabel* insertItem = CCMenuItemLabel::create(insertLabel, this, menu_selector(HelloWorld::insertData)); CCMenu* insertMenu = CCMenu::create(insertItem,NULL); insertMenu->setPosition(ccp(100, 200)); this->addChild(insertMenu); CCLabelTTF* lookUpLabel = CCLabelTTF::create("查看数据", "Arial", 24); CCMenuItemLabel* lookUpItem = CCMenuItemLabel::create(lookUpLabel, this, menu_selector(HelloWorld::LookUpData)); CCMenu* lookUpMenu = CCMenu::create(lookUpItem,NULL); lookUpMenu->setPosition(ccp(100, 100)); this->addChild(lookUpMenu); CCLabelTTF* deleteLabel = CCLabelTTF::create("删除数据", "Arial", 24); CCMenuItemLabel* deleteItem = CCMenuItemLabel::create(deleteLabel, this, menu_selector(HelloWorld::deleteData)); CCMenu* deleteMenu = CCMenu::create(deleteItem,NULL); deleteMenu->setPosition(ccp(200, 100)); this->addChild(deleteMenu); return true; } //创建表 void HelloWorld::createTable() { //获取保存路径 + 保存文件名 path=CCFileUtils::sharedFileUtils()->getWritablePath() +"save.db"; std::cout<<"path"<<path<<std::endl; //std::string sql; result=sqlite3_open(path.c_str(),&pdb); if(result!=SQLITE_OK) CCLog("open database failed, number%d",result); //创建表的方法 result=sqlite3_exec(pdb,"create table student(ID integer primary key autoincrement,name text,sex text)",NULL,NULL,NULL); if(result!=SQLITE_OK) CCLog("create table failed1"); sqlite3_close(pdb); } //插入数据 void HelloWorld::insertData() { result=sqlite3_open(path.c_str(),&pdb); if(result!=SQLITE_OK) CCLog("open database failed, number%d",result); sql="insert into student values(1,'changmen','male')"; result=sqlite3_exec(pdb,sql.c_str(),NULL,NULL,NULL); if(result!=SQLITE_OK) CCLog("insert data failed!"); sql="insert into student values(2,'xiaonan','female')"; result=sqlite3_exec(pdb,sql.c_str(),NULL,NULL,NULL); if(result!=SQLITE_OK) CCLog("insert data failed!"); sql="insert into student values(3,'peien','male')"; result=sqlite3_exec(pdb,sql.c_str(),NULL,NULL,NULL); if(result!=SQLITE_OK) CCLog("insert data failed!"); } //删除数据 void HelloWorld::deleteData() { sqlite3_open(path.c_str(), &pdb); sql="delete from student where ID=1"; result=sqlite3_exec(pdb,sql.c_str(), NULL,NULL,NULL); if(result!=SQLITE_OK) CCLog("delete data failed!"); } //查看数据 void HelloWorld::LookUpData() { char **re; int r = 0,c = 0; sqlite3_get_table(pdb,"select * from student",&re,0,0,NULL); CCLog("row is %d,column is %d",r,c); CCLabelTTF *liu=CCLabelTTF::create(re[7],"Arial",24); liu->setPosition(ccp(200,200)); addChild(liu,1); CCLog(re[2*c+1]); sqlite3_free_table(re); sqlite3_close(pdb); }
代码例子下载: http://vdisk.weibo.com/s/BDn59yfnBU_2k