ios coreData sqlite3
2015-06-03 15:11
253 查看
// // ViewController.m // CoreDataByStoryboard // // Created by 何瑾 on 15/1/15. // Copyright (c) 2015年 e世雕龙. All rights reserved. // #import "ViewController.h" #import "Student.h" @interface ViewController () @property (weak, nonatomic) IBOutlet UITextField *txtName;// 姓名文本框 @property (weak, nonatomic) IBOutlet UITextField *txtAge;// 年龄文本框 @property (weak, nonatomic) IBOutlet UITextField *txtID;// ID文本框 @property (strong, nonatomic) NSManagedObjectContext *managedObjectContext;// 托管对象上下文(类似于sqlite3编程中数据库的缓冲区) @property (strong, nonatomic) NSArray *students;// 查询出来的学生数组 @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; [self getDocPath]; // Do any additional setup after loading the view, typically from a nib. // 1、获取应用程序对象 UIApplication *app = [UIApplication sharedApplication]; // 2、获取应用程序的委托 id appDelegate = app.delegate; // 3、获取应用程序中的托管对象上下文 self.managedObjectContext = [appDelegate managedObjectContext]; } #pragma mark 注册 - (IBAction)btnRegister:(id)sender { // 通过实体描述类创建数据模型(托管对象)放入托管对象上下文中 Student *stu = [NSEntityDescription insertNewObjectForEntityForName:@"Student" inManagedObjectContext:self.managedObjectContext]; // 给数据模型(托管对象)属性绑定界面数据 static int i = 0; i++; stu.id = [NSNumber numberWithInt:i]; stu.name = self.txtName.text; stu.age = [NSNumber numberWithInt:[self.txtAge.text intValue]]; stu.address = @"北京人"; // 通过托管对象上下文保存数据模型(托管对象) __autoreleasing NSError *error = nil; [self.managedObjectContext save:&error]; // 判断是否保存成功 if (error) { [self myAlert:@"托管对象保存失败!"]; } else { [self myAlert:@"托管对象保存成功!"]; } } #pragma mark 查询 - (IBAction)btnSearch:(id)sender { // 1、创建抓取请求对象 NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Student"]; // 从界面获取查询条件 NSNumber *id = [NSNumber numberWithInt:[self.txtID.text intValue]]; NSLog(@"id:%@",id); // 2、创建谓词(查询条件) NSPredicate *predicate = [NSPredicate predicateWithFormat:@"id=%@",id]; // 2.1把谓词放入抓取请求对象中 [request setPredicate:predicate]; // 3、创建排序规则 NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc]initWithKey:@"id" ascending:YES]; // 3.1把排序规则放入抓取请求对象中 [request setSortDescriptors:@[sortDescriptor]]; // 4、执行抓取(查询) __autoreleasing NSError *error = nil; self.students = [self.managedObjectContext executeFetchRequest:request error:&error]; if (error) { [self myAlert:@"查询失败!"]; } else { [self myAlert:@"查询成功!请看控制台!"]; NSLog(@"students:%@",self.students); } } #pragma mark 封装UIAlertView - (void)myAlert:(NSString *)errorMsg { UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"信息" message:errorMsg delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil]; [alert show]; } #pragma mark 获取应用沙盒的documents目录路径 - (NSString *)getDocPath { NSArray *docPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *docPath = docPaths[0]; NSLog(@"docPath:%@",docPath); return docPath; } @end
相关文章推荐
- 一点mysql注入时用到的函数
- 内存数据库-Redis介绍
- redis小试牛刀02-链表
- Oracle常用命令(no.3)
- 笨拙而诡异的 Oracle(之二)
- 生成解析sqlite DB文件笔记
- oracle获取某时间段内的年份、月份、日期列表
- mysql :select 添加一列固定值
- PostgreSQL和MySQL like区别
- sqlserver2008 解决 ldf文件过大的方法
- Oracle表空间管理
- 关于mysql的metadata lock
- SQL Server清空库下所有表数据
- MySQL慢查询优化
- Oracle中packages的使用
- Mysql数据库优化总结
- C#调用MySQL数据库
- SSH框架之Hibernate数据库外键如何插入值的问题
- 深入Mysql字符集设置
- Oracle在表上建立自增字段的方法