iOS-数据库-FMDB-第三方-插入数据列表-(附件2-DataBaseHanfle.h-DataBaseHanfle.h-Student.h-Student.m)

第三方-点击下载-
iOS-数据库-FMDB-第三方-插入数据列表-(附件2-DataBaseHanfle.h-DataBaseHanfle.h-Student.h-Student.m)

//
// DataBaseHandle.h
// UI18_FMDB
//
// Created by YIem on 16/3/4.
// Copyright © 2016年 YIem. All rights reserved.
//

import <Foundation/Foundation.h>

@class Student;
@interface DataBaseHandle : NSObject

  • (instancetype)shareDataBase;
  • (void)openDB;
  • (void)closeDB;
  • (void)createTable;
  • (void)deleteTable;
  • (void)insertDataWithStu:(Student *)stu;
  • (void)updateWithStu:(Student *)stu num:(NSInteger)num;
  • (void)deleteDataWithNum:(NSInteger)num;
  • (NSMutableArray )selectStuWithSex:(NSString )sex;
  • (void)insertMoreStudent:(Student *)stu;
    @end

iOS-数据库-FMDB-第三方-插入数据列表-(附件2-DataBaseHanfle.h-DataBaseHanfle.h-Student.h-Student.m)
iOS-数据库-FMDB-第三方-插入数据列表-(附件2-DataBaseHanfle.h-DataBaseHanfle.h-Student.h-Student.m)
iOS-数据库-FMDB-第三方-插入数据列表-(附件2-DataBaseHanfle.h-DataBaseHanfle.h-Student.h-Student.m)
iOS-数据库-FMDB-第三方-插入数据列表-(附件2-DataBaseHanfle.h-DataBaseHanfle.h-Student.h-Student.m)
iOS-数据库-FMDB-第三方-插入数据列表-(附件2-DataBaseHanfle.h-DataBaseHanfle.h-Student.h-Student.m)
iOS-数据库-FMDB-第三方-插入数据列表-(附件2-DataBaseHanfle.h-DataBaseHanfle.h-Student.h-Student.m)
//
// DataBaseHandle.m
// UI18_FMDB
//
// Created by YIem on 16/3/4.
// Copyright © 2016年 YIem. All rights reserved.
//

import "DataBaseHandle.h"

import "FMDatabase.h"

import "Student.h"

import "FMResultSet.h"

import "FMDatabaseQueue.h"

@interface DataBaseHandle ()

@property (nonatomic, retain) FMDatabase *fmdb;
@property (nonatomic, copy) NSString *filePath;
@end

@implementation DataBaseHandle

  • (void)dealloc
    {
    [_fmdb release];
    [_filePath release];
    [super dealloc];
    }
  • (instancetype)shareDataBase
    {
    static DataBaseHandle *dataBase = nil;
    if (nil == dataBase) {

    dataBase = [[DataBaseHandle alloc] init];

    }
    return dataBase;
    }

  • (void)openDB
    {
    NSString *file = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    NSLog(@"%@", file);
    self.filePath = [file stringByAppendingPathComponent:@"dataBaseFMDB.db"];

    // FMDB是进行了OC 的封装
    // 注意先创建对象
    self.fmdb = [[FMDatabase alloc] initWithPath:_filePath];
    // 打开数据库
    BOOL ret = [self.fmdb open];
    if (ret) {

    NSLog(@"打开数据库成功");

    } else {

    NSLog(@"打开数据库失败");

    }

    }

  • (void)closeDB
    {
    BOOL ret = [self.fmdb close];
    if (ret) {

    NSLog(@"数据库关闭成功");

    } else {

    NSLog(@"数据库关闭失败");

    }
    }

  • (void)createTable
    {
    NSString *sql = @"CREATE TABLE IF NOT EXISTS student(number integer PRIMARY KEY AUTOINCREMENT, name TEXT, sex TEXT, age integer)";
    BOOL ret = [self.fmdb executeUpdate:sql];
    if (ret) {

    NSLog(@"创建表单成功");

    } else {

    NSLog(@"创建表单失败");

    }
    }

  • (void)deleteTable
    {
    NSString *sql = @"DROP TABLE student";
    BOOL ret = [self.fmdb executeUpdate:sql];
    if (ret) {

    NSLog(@"删除表单成功");

    } else {

    NSLog(@"删除本地失败");

    }
    }

  • (void)insertDataWithStu:(Student *)stu
    {
    NSString *sql = [NSString stringWithFormat:@"INSERT INTO student(name, sex, age) VALUES ('%@', '%@', '%ld')", stu.name, stu.sex, stu.age];
    BOOL ret = [self.fmdb executeUpdate:sql];
    if (ret) {

    NSLog(@"插入数据成功");

    } else {

    NSLog(@"插入数据失败");

    }
    }

  • (void)updateWithStu:(Student *)stu num:(NSInteger)num
    {
    NSString *sql = [NSString stringWithFormat:@"UPDATE student SET name = '%@', sex = '%@', age = '%ld' WHERE number = '%ld'", stu.name, stu.sex, stu.age, num];
    BOOL ret = [self.fmdb executeUpdate:sql];
    if (ret) {

    NSLog(@"修改数据成功");

    } else {

    NSLog(@"修改数据失败");

    }
    }

  • (void)deleteDataWithNum:(NSInteger)num
    {
    NSString *sql = [NSString stringWithFormat:@"DELETE FROM student WHERE number = '%ld'", num];
    BOOL ret = [self.fmdb executeUpdate:sql];
    if (ret) {

    NSLog(@"删除数据成功");

    } else {

    NSLog(@"删除数据失败");

    }
    }

  • (NSMutableArray )selectStuWithSex:(NSString )sex
    {
    NSString sql = [NSString stringWithFormat: @"SELECT FROM student WHERE sex LIKE '%%%@%%'", sex];

    // FMResultSet 类用来查询
    FMResultSet *resSet = [self.fmdb executeQuery:sql];

    NSMutableArray *stuArr = [NSMutableArray array];
    // 解析每一行
    while ([resSet next]) {

    Student *stu = [[Student alloc] init];
    stu.name = [resSet stringForColumn:@"name"];
    stu.sex = [resSet stringForColumn:@"sex"];
    stu.age = [resSet longForColumn:@"age"];
    [stuArr addObject:stu];
    [stu release];

    }
    return stuArr;

}

////////////

  • (void)insertMoreStudent:(Student *)stu
    {

    // 创建队列
    FMDatabaseQueue *dataQ = [FMDatabaseQueue databaseQueueWithPath:self.filePath];
    // 队列中任务要做的操作
    [dataQ inTransaction:^(FMDatabase *db, BOOL *rollback) {
    

    // [self insertDataWithStu:stu];
    NSString *sql = [NSString stringWithFormat:@"INSERT INTO student(name, sex, age) VALUES ('%@', '%@', '%ld')", stu.name, stu.sex, stu.age];
    BOOL ret = [db executeUpdate:sql];
    if (ret) {

    NSLog(@"插入数据成功");

    } else {

    NSLog(@"插入数据失败");

    }

    }];
       

    }

@end



iOS-数据库-FMDB-第三方-插入数据列表-(附件2-DataBaseHanfle.h-DataBaseHanfle.h-Student.h-Student.m)
//
// Student.h
// UI18_FMDB
//
// Created by YIem on 16/3/4.
// Copyright © 2016年 YIem. All rights reserved.
//

import <Foundation/Foundation.h>

@interface Student : NSObject
@property (nonatomic, copy) NSString *name;
@property (nonatomic, copy) NSString *sex;
@property (nonatomic, assign) NSInteger age;
@end


iOS-数据库-FMDB-第三方-插入数据列表-(附件2-DataBaseHanfle.h-DataBaseHanfle.h-Student.h-Student.m)
//
// Student.m
// UI18_FMDB
//
// Created by YIem on 16/3/4.
// Copyright © 2016年 YIem. All rights reserved.
//

import "Student.h"

@implementation Student

  • (void)dealloc
    {

    [_name release];
    [_sex release];
    [super dealloc];

    }

@end