IOS--UI--LessonFMDB

一 定义:

/*

1.FMDB 是 iOS 平台下的 SQLite 数据库 只不过它是以 OC 方式封装了 C 语言的 sqlite 语句
2.优点:①使用起来更加面对对象 ,省去很多麻烦
②对比苹果自带的数据管理工具 core Data 框架 更加的轻便 灵活 支持多平台
③提供了 多线程的安全数据库操作方式,能有效地防止数据混乱

3.FMDB 里面的类:
①FMDBDataBase 创建一个单独的数据库对象 创建数据库对象的时候使用
②FMDBResultSet 用来存储 SQL 语句执行后的结果的集(我们执行 SQL 语句后的结构就用这个类对象去取)
③FMDBDatabaseQuese 用于多线程中执行查找,删除,修改,它提供了多线程的安全

*/
也算是第三方 我们需要 导入文件 然后导入 FMDB 的头文件
还是用 sb 建一个界面和 不过 不需要textfiled 我们用代码 增删改查



#import "ViewController.h"
#import "FMDatabase.h"
#import "FMResultSet.h"
#import "FMDatabaseAdditions.h"
#import "FMDatabaseQueue.h"
#import "FMDatabasePool.h"

@interface ViewController ()
@property (nonatomic,retain)FMDatabase *db;
@end

@implementation ViewController
- (void)dealloc
{
    [_db release];
    [super dealloc];
}
- (void)viewDidLoad {
    [super viewDidLoad];

#pragma mark ---------创建数据库对象------- 
    //获取 document 路径
    NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)firstObject];

//    拼接路径
    NSString *copyPath = [documentPath stringByAppendingPathComponent:@"person.sqltite"];

    NSLog(@"%@",copyPath);
    //创建数据库对象  这个只是创建了 数据库对象 但是没有生成文件
    // 里面的参数 是 数据库放置的路径
    FMDatabase *db = [FMDatabase databaseWithPath:copyPath];
//    NSLog(@"%@",db);
    //打开数据库的时候 才是真正创建了文件
    BOOL isSuccess = [db open];
    if (isSuccess) {

        NSLog(@"创建成功");
       //创建数据库表格
//   注:     executeUpdate :除了查询外,其他属于更新,删除,插入,创建表格都是使用这个
     BOOL isSuccess  = [db executeUpdate:@"Create table if not exists Person (id integer primary key autoincrement,name text not null,age integer,money integer not null) "];


        if (isSuccess) {
            NSLog(@"建表成功");
        }


    }
    //不用修改上面的的 db  可以直接在下面加一句话 这样他们指定的就是同一个空间 给属性赋值
    self.db = db;
    // Do any additional setup after loading the view, typically from a nib.
}

#pragma mark---点击 button 事件




//增加 insert
- (IBAction)insert:(UIButton *)sender {
    //参数是 SQL 语句
//    ? 参数占位符 参数必须是对象类型
   BOOL isSuccess = [self.db executeUpdate:@"insert into Person (name,money)values (?,?)",@"Nyx",@500000];

    if (isSuccess) {
        NSLog(@"Nyx 信息已录入");
    }else{
           NSLog(@"非法信息不予接受");
    }



}

//删除 delete
- (IBAction)delete:(UIButton *)sender {

    //清除全部信息
//  BOOL isSuccess = [self.db executeUpdate:@"delete from Person"];
    //根据条件删除
  BOOL isSuccess =  [ self.db executeUpdate:@"delete from Person where name = ?",@"Anne" ];
    if (isSuccess) {
        NSLog(@"清理成功");
   }else{

       NSLog(@"delete没有完成");

   }




}

//修改update
- (IBAction)update:(UIButton *)sender {

//    BOOL isSuccess = [self.db executeUpdate:@"update Person set money = ? where name = ?",@45612,@"Nyx" ];
//    还可以写成下面的
    BOOL isSuccess = [self.db executeUpdate:@"update Person set money = 54651 where name = 'Nyx'" ];

    //SQL 语句中字符串使用单引号''
    if (isSuccess) {
        NSLog(@"有钱啦");
    }else {
        NSLog(@"骗子");
    }


}





//查询 select
- (IBAction)select:(UIButton *)sender {


//    ①查找全部的信息
    FMResultSet *set =  [self.db executeQuery:@"select *from Person"];

//    ② 根据条件查找
//    FMResultSet *set = [self.db executeQuery:@"select *from Person where name = ?",@"Anne"];
    //循环的条件 下一行有数据可查询

    while ([set next]) {
        //取出每一行,每一列对应的数据
        NSInteger _id = [set intForColumn:@"id"];
        NSString *name = [set stringForColumn:@"name"];
        NSInteger money = [set intForColumn:@"money"];


        NSLog(@"id:%ld name:%@ money :%ld",_id,name,money);



    }
//     NSLog(@"select");


}

总结:
1.FMDB 是一个非常方便的数据库 多研究
2.executeUpdate :除了查询外,其他属于更新,删除,插入,创建表格都是使用这个

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值