2016-8-23辛晨辉

数据库复习

终端操作:

1、建立db为扩展名的文件

2、建立表:create table 表名(字段名 字段类型);

3、插入记录: insert into 表明(字段名)values(记录名);

4、 查找select * from 表名;

5、删除

 

 

Xcode操作:

1、打开数据库:sqlite3_open([_path UTF8String],&_link);

2、建立操作语句:NSString *字符串名字=[NSString stringWithFormat:@“操作语句”];

2.1、查询的话需要建立查询对象:sqlite3_stmt *stmt;

2.2、建立查询语句:同上建立操作语句

2.3、预编译

if(sqlite3_perpare_v2(_link,[字符串名字 UTF8String ],-1(代表查询所有的),&stmt,nil)==SQLITE_OK){

while(sqlite3_step(stmt)==SQLITE_ROW){

NSString *字段名=[NSString stringWithCString:(char *)sqlite3_column_text(stmt,1) encoding:NSUTF8StringEncoding];

NSString *age=[NSString stringWithCString:(char *)sqlite3_column_text(stmt,1) encoding:NSUTF8StringEncoding];

[可变数组名 addObject:@{@“字段名”]]

}

}

3、查找

4、关闭数据库  

 

 

CoreData

数据持久化储存的最佳方式(不用更改路径)

建立的时候记得勾选CoreDate

比较关键的类:

(1)NSManagedObjercContext(被管理的数据上下文)

(2)NSManagedObjectModel  被管理的数据模型

(3)NSPersistentStoreCoordinator  持久化储存助理

(4)NSManagedObjert   被管理的数据记录

(5)NSFetchRequest  查询语句

(6)NSEntityDescription  实体结构   表格结构

会自动生成文件

1、NSManagedObjectContext     数据上下文

2、NSManagedObjectModel     数据模型

3、NSPersistentStoreCoordinator   储存助理

 

步骤:

1、建立对象模型

2、生成User对象

3、取到上下文对象

实例化AppDelegate,然后建立一个managedObjectContext来承接AppDelegate的managedObjectContext

4.进行操作

4.1、插入数据

4.1.1实现实体

Student *stu = [NSEntityDescription

insertNewObjectForEntityForName:@"Student"

inManagedObjectContext:_context];

4.1.2插入数据

stu.name = NSString;

int a =[_ageText.text intValue];

stu.age = [NSNumber numberWithInt:a];

4.1.3保存数据

[_context save:nil]; 

4.2查询数据

4.2.1创建一个获取请求

NSFetchRequest *fet=[[NSFetchRequest alloc]init];

4.2.2设置要查询的实体,通过NSEntityDescription的entityForName的方法来

fet.entity=[NSEntityDescription entityForNama:@“Student” inManagedObjectContext:_context];

4.2.3过滤条件

NSPredicate *pre=[NSPredicate perdicateWithFormat:@“name like %@”,@“*(查询条件)*”];

fet.predicate=pre;

4.2.4执行查询语句

NSArray *array=[_context excuteFetchRequest:fet error:nil];

for (NSManagerObject *obj in array){

NSLog(@“%@”,[obj valueForKey@“name”]);

}

4.3查询数据排序

排序的对象  ascending:YES 升序 ascending:NO 降序

NSSortDescriptor *sort=[[NSSortDescriotor alloc]initWithKey:@”name” ascentding:NO];

NSArray *arrSort=[NSArray arrayWithObject:sort];

fet.sortDesctiptors=arrSort;

4.4删除数据

4.4.1实例化执行请求

NSFetchResqest *reqest=[NSFetchRequest fetchRequestWithEntityName:@“Student”];

4.4.2设置谓词条件

reqest.predicate=[NSPredicate prediateWithFormat:@“name=‘哇哈哈’”];

4.4.3由上下文查询数据

NSArray *arrResu=[_context extcuteFetchRequest:fet error:nil];

4.4.4输出结果

for(Student *stu in result){

NSLog(@“%@”,stu.name);

删除记录

[_context deleteObject:stu];

break;

}

4.4.5通知_context保存数据

if([_context save:nil]){

NSLog(@“删除成功”);

}else{

NSLog(@“删除失败”);

}

4.5修改数据

4.5.1实例化查询请求

NSFetchRequest *request=[NSFetchRequest fetchRequestWithEntityName:@“Student”];

4.5.2设置谓词条件  年龄小于20的名字改成未成年

request.predicate=[NSPredicate predicateWithFormat:@“age>20”];

4.5.3由上下文查询数据

NSArray *resu=[_countext extcuteFetchResqest:request error:nil];

4.5.4输出结果

for(Student *stu in resu){

NSLog(@“%@  %@”,stu.name,stu.age);

更新名字

stu.name=@“老头”;

}

4.5.5通知上下文保存

[_context save:nil];

注:在实际开发中,通常是从表格中选中某一行,获取到对应的NSManagedObject,然后进行修改

如此,变不需查询字节可以修改唯一一条记录了。

转载于:https://my.oschina.net/fichen/blog/736825

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值