1、在终端上创建数据库:sqlite3 mydata.db;create table person(id,name,age); create table if not exists person(id,age);//如果没有这个表,就创建,有不创建 create table if not exists person(id interger primary key autoincrement,name text,age interger); //标准写法 2、插入 insert into person (id,age)values(’1′,’name’,’19′); update person set name = ‘cao’; delete from person where id = ’1′; select id,name from person; select * from person; select * from person where id = ’1′;
3. select count(*)from info; 4,查看数据库信息,SQLite特有的命令 .tables 查看表 .schema 显示表头 .dump <table name>显示历史命令 5,在一个工程里添加数据库 (1)导入libsqlite3.dylib文件 点击工程,summary->Linked Frameworks and Libraries ->libsqlite3.dylib,add; #import <sqlite3.h>
sqlite3 * db;//用于操作数据库变量
NSString * db_file = [[NSBundle mainBundle] pathForResource:@”qq”ofType :@”db”]; //打开数据库 int n = sqlite3_open([db_file UTF8String],&db);让DB指针指向数据库 if(n != SQLITE_OK) { NSLog(@”open error”);//判断是否打开数据库 } sqlite3_stmt * statement = nil;//指向表头,并且存储查询的数据 NSString * sql = @”select * from chat”; if(sqlite3_prepare(db,[sql UTF8String],-1,&statement,NULL)!=SQLITE_OK) { NSLog(@”start error”);//开始查询 } while(sqlite3_step(statement)==SQLITE_OK) { NSString * time = [NSString stringWithUTF8String (char *)sqlite3_column_text(statement,0)]; //0代表列号,从0-最后一列-1; } sqlite3_finalize(statement);//finish 查询 //插入数据 NSString * sql1 = @”insert into chat values(’2011-9-19′,’xiaoji’,'hoew’,’1′)”; char * errmsg; if(sqlite3_exec(db,[sql1 UTF8String],NULL,&errmsg)!=SQLITE_OK)
{ NSLog(@”message:%s”,errmsg); }
sqllite3_close(db);//关闭数据库
6,由于在iPhone项目开发中,一个项目对应唯一的UIApplication,一个 UIApplication又对应唯一的ApplicationDelegate,即常见的AppDelegate文件 因此,可以在这里面增加一些全局都要使用的,比如数据库的打开关闭。 AppDelegate.h中添加: #import <sqlite3.h> sqlite3* database;//属性。 @property (nonatomic,retain)sqlite3 * database; AppDelegate.h中添加。 @synthesize database; 声明函数: -(NSString *)dataPath { NSString * path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]; NSlog(“%@”,path); return [path stringByAppendingPathComponent:@"myDatabaseName"]; } -(void)openDatabase { NSString * name = [self dataPath]; if(sqlite3_open([name UTF8String],&database)!=SQLITE_OK) { NSLog(@”open error”); database = NULL; } NSString * sql = @”create table if not exists” “personInfo(ID integer primary key autoincrement,age int)”; char * errMsg = NULL; if(sqlite3_exec(database,&errMsg)!=SQLITE_OK) { NSLog(@”error to exec”); }
} -(void)closeDatabase { if(database) { sqlite3_close(database); } } -(void)dealloc { [self closeDatabase]; } 并且在添加主页的那个函数里面添加代码。 [self openDatabase];
4月12日心得:
今天连接了数据库,很受打击,总结了一下今天的东西,发现总结真的是一个好东西,
1、创建数据库,在终端,随便找个文件夹sqlite3 databaseName.db.这时候把创建好的数据库导入到项目中,此时,项目与终端已经没什么联系了,表呢,一般在项目中创建,避免别人装个系统还要装个终端?
2、可以打印出来项目的沙盒,因为你的databaseName.db就在沙盒里呀,笨蛋,这时候再在终端找到沙盒,就可以在终端观察数据库在程序中的运行了,获得沙盒路径的方法有两种:
NSString * path = [[NSBuddle mainBuddle] pathForResource:@”databaseName” forType:@”db”];
另外一种,获得沙盒后还可以在沙盒中加入指定的文件夹
NSString * path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]; NSlog(“%@”,path); return [path stringByAppendingPathComponent:@"myDatabaseName"];
3、接下来就开始打开数据库了,首先要设置一个全局变量sqlite3 * database;
打开数据库在上面都有,就是把沙盒中的数据库读到 database里面。
sqlite3_open([path UTF8string],&database); (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|