建立一个单例:
DataBaseHandle.h
- #import <Foundation/Foundation.h>
- @class PersonModel;
- @class FMDatabase;
- @interface DataBaseHandle : NSObject
- @property(nonatomic,retain)FMDatabase *db;
- //创建单例的的接口
- + (DataBaseHandle *)shareDateBaseHandle;
- //创建一个Person表格
- - (void)creatPersonTable;
- //插入person的方法
- - (void)insertPersonTable : (PersonModel *)person;
- //写一个删除人的接口
- - (void)deletePersonByPerssonID : (NSString *)ID;
- //写一个修改人的接口
- - (void)uodatePerson : (NSString *)age ByPersonID : (NSString *)ID;
- //写一个查询所有人的接口
- - (NSMutableArray *)selectAllPersonFromPersonTable;
- @end
DataBaseHandle.m
- #import "DataBaseHandle.h"
- #import "FMDB.h"
- #import "PersonModel.h"
- @implementation DataBaseHandle
- - (void)dealloc
- {
- self.db = nil;
- [super dealloc];
- }
创建单例的的接口:
- //创建单例对象使其存在于静态区
- static DataBaseHandle *handle = nil;
- //创建单例的的借口
- + (DataBaseHandle *)shareDateBaseHandle{
- @synchronized(self){
- if (handle == nil) {
- handle = [[DataBaseHandle alloc]init];
- }
- }
- return handle;
- }
写一个私有的方法,返回数据库的路径
- - (NSString *)dbpath{
- return [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject] stringByAppendingPathComponent:@"db.sqlite"];
- }
创建一个Person表格
四种方法:增、删、改、查;
- //创建一个Person表格
- - (void)creatPersonTable{
- //初始化数据库对象
- self.db = [FMDatabase databaseWithPath: [self dbpath]];
- //打开数据库
- BOOL isOpen = [self.db open];
- if (isOpen) {
- NSLog(@"打开成功");
- //创建表
- BOOL isCreat = [self.db executeUpdate:@"create table if not exists Person(id integer primary key autoincrement,name text,gender text,age integer,salary integer)"];
- NSLog(@"%@",isCreat ? @"创建成功":@"创建失败");
- }else{
- NSLog(@"打开失败");
- }
- }
建一个model类
- //插入person的方法
- - (void)insertPersonTable : (PersonModel *)person{
- BOOL isInsert = [self.db executeUpdate:@"insert into Person(name,age)values(?,?)",person.name,person.age];
- NSLog(@"%@",isInsert ? @"插入成功":@"插入失败");
- }
- //写一个删除的接口
- - (void)deletePersonByPerssonID : (NSString *)ID{
- BOOL isDelete = [self.db executeUpdate:@"delete from Person where id = ?",ID];
- NSLog(@"%@",isDelete ? @"删除成功":@"删除失败");
- }
- //写一个修改人的接口
- - (void)uodatePerson : (NSString *)age ByPersonID : (NSString *)ID{
- BOOL isUpdate = [self.db executeUpdate:@"update Person set age = ? where id = ?",age,ID];
- NSLog(@"%@",isUpdate ? @"修改成功":@"修改失败");
- }
- //写一个查询所有人的接口
- - (NSMutableArray *)selectAllPersonFromPersonTable{
- FMResultSet *set = [self.db executeQuery:@"select * from Person"];
- NSMutableArray *array = [NSMutableArray arrayWithCapacity:0];
- while ([set next]) {
- NSInteger ID = [set intForColumn:@"id"];
- NSString *name = [set stringForColumn:@"name"];
- NSInteger age = [set intForColumn:@"age"];
- //创建Person对象存储信息
- PersonModel *p = [[PersonModel alloc]init];
- p.ID = [NSString stringWithFormat:@"%ld",ID];
- p.name = name;
- p.age = [NSString stringWithFormat:@"%ld",age];
- //添加到数组
- [array addObject:p];
- [p release];
- }
- return array;
- }
===============================测试调用===============================
- PersonModel.h
- #import <Foundation/Foundation.h>
- @interface PersonModel : NSObject
- @property(nonatomic,copy)NSString *ID;
- @property(nonatomic,copy)NSString *name;
- @property(nonatomic,copy)NSString *age;
- @end
- PersonModel.m
- #import "PersonModel.h"
- @implementation PersonModel
- - (void)dealloc
- {
- self.name = nil;
- self.age = nil;
- self.ID = nil;
- [super dealloc];
- }
- @end
- #import "FirstViewController.h"
- #import "DataBaseHandle.h"
- #import "PersonModel.h"
- @interface FirstViewController ()
- @property(nonatomic,retain)NSMutableArray *dataSource;//接收查询的结果
- @end
- @implementation FirstViewController
- - (void)dealloc
- {
- self.dataSource = nil;
- [super dealloc];
- }
TEXT:
- //懒加载
- - (NSMutableArray *)dataSource{
- if (_dataSource == nil) {
- self.dataSource = [NSMutableArray arrayWithCapacity:0];
- }
- return [[_dataSource retain]autorelease];
- }
配置显示:
- - (void)viewDidLoad {
- [super viewDidLoad];
- //调用并验证
- [[DataBaseHandle shareDateBaseHandle]creatPersonTable];
- NSLog(@"%@",NSHomeDirectory());
- PersonModel *p = [[PersonModel alloc]init];
- p.name = @"小韩哥";
- p.age = @"20";
- //调用插入person的方法
- // [[DataBaseHandle shareDateBaseHandle]insertPersonTable:p];
- //接收数据库返回的查询结果
- self.dataSource = [[DataBaseHandle shareDateBaseHandle]selectAllPersonFromPersonTable];
- //调用删除人的方法
- [[DataBaseHandle shareDateBaseHandle]deletePersonByPerssonID:@"9"];
- }
来自:http://blog.csdn.net/qq_31810357/article/details/49181453
- #pragma mark - Table view data source
- - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
- // Return the number of sections.
- return 1;
- }
- - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
- // Return the number of rows in the section.
- return self.dataSource.count;
- }
- - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
- UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"firstcell" forIndexPath:indexPath];
- PersonModel *p = self.dataSource[indexPath.row];
- cell.textLabel.text = p.name;
- return cell;
- }
来源: http://www.phpxs.com/code/1005442/