iOS资料iOSiOS开发

iOS-FMDB

2016-07-03  本文已影响2290人  麦穗0615
前言:

今天,就让我们,重点学习一下FMDB。

FMDB学习
一、基本介绍
二、使用方法
*FMDatabaseQueue
三、示例代码
  //
  //  ViewController.m
  //  FMDB
  //
  //  Created by mac on 16/7/3.
  //  Copyright © 2016年 mac. All rights reserved.
  //
  #import "ViewController.h"
  #import "FMDB.h"
  @interface ViewController ()
  @property(strong,nonatomic)FMDatabase *db;
  @end
  @implementation ViewController
  #pragma mark- 创建数据库
  - (void)viewDidLoad {
    [super viewDidLoad];
    // 1.获取数据库文件的路径
    NSString *doc =    [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject];
    NSString *fileName = [doc stringByAppendingPathComponent:@"student.sqlite"];
    //  2.获取数据库
    FMDatabase *db = [FMDatabase databaseWithPath:fileName];
    //  3.打开数据库
    if([db open]){
    //4.创表
    BOOL result = [db executeUpdate:@"CREATE TABLE IF NOT EXISTS t_student id integer PRIMARY KEY AUTOINCREMENT, name text NOT NULL, age integer NOT NULL);"];
    if (result) {
        NSLog(@"创表成功");
    }else{
        NSLog(@"创表失败");
    }
  }
     self.db = db;
  }
  #pragma mark- 触发执行
  - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
  {
   [self delete];
   [self insert];
   [self query]
  }
  #pragma mark- 插入数据
  - (void)insert
  {
    for (int i = 0; i<10; i++) {
    NSString *name = [NSString stringWithFormat:@"jack-%d",arc4random_uniform(100)];
    //  executeUpdate: 不确定的参数用?来占位
    [self.db executeUpdate:@"INSERT INTO t_student (name, age) VALUES (?, ?);",name, @(arc4random_uniform(40))];
    //        [self.db executeUpdate:@"INSERT INTO t_student (name, age) VALUES (?, ?);" withArgumentsInArray:@[name, @(arc4random_uniform(40))]];
    // executeUpdateWithFormat : 不确定的参数用%@、%d等来占位
    //        [self.db executeUpdateWithFormat:@"INSERT INTO t_student (name, age) VALUES (%@, %d);", name, arc4random_uniform(40)];
    } 
   }
   #pragma mark- 删除数据
  -(void)delete{
     //      [self.db executeUpdate:@"DELETE FROM t_student;"];
    [self.db executeUpdate:@"DROP TABLE IF EXISTS t_student;"];
    [self.db executeUpdate:@"CREATE TABLE IF NOT EXISTS t_student (id integer PRIMARY KEY AUTOINCREMENT, name text NOT NULL, age integer NOT NULL);"];
    }
   #pragma mark- 查询数据
   - (void)query
  {
    // 1.执行查询语句
    FMResultSet *resultSet = [self.db executeQuery:@"SELECT * FROM t_student"];
    // 2.遍历结果
   while ([resultSet next]) {
           int ID = [resultSet intForColumn:@"id"];
           NSString *name = [resultSet stringForColumn:@"name"];
           int age = [resultSet intForColumn:@"age"];
           NSLog(@"%d %@ %d", ID, name, age);
       }
   }
   @end
上一篇下一篇

猜你喜欢

热点阅读