14FMDB_DAO

一、FMDB
項目:sqlite_useFMDB0414
(一)使用FMDB準備工作:
1.導入sqlite3靜態庫
2.將fmdb拖入工程
3.在arc環境下,需要做以下修改:

4.導入FMDB.h

(二)使用FMDB庫操作數據庫
1.準備工作
①導入sqlite3靜態庫
②將fmdb拖入工程
③導入FMDB.h

createTable/insert/update/delete:
1.創建數據庫對象(相當于句柄)
2.打開數據庫
3.調用方法[_db executeUpdate:];
createTable/insert/update/delete
4.關閉數據庫

selecte:
1.創建數據庫對象(相當于句柄)
2.打開數據庫
3.獲得結果集[_db executeQuery:];
4.從結果集中逐條查詢
5.關閉結果集/數據庫

源碼:

@interface ViewController ()
{
    __weak IBOutlet UITextField *_nameTf;
    __weak IBOutlet UITextField *_ageTf;
    FMDatabase *_db;
}
@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    //創建數據庫對象,用來操作數據庫文件(相當于句柄)
    _db = [[FMDatabase alloc]initWithPath:[self getFilePath]];
}

#pragma mark - **************** 獲取路徑
- (NSString *)getFilePath
{
    NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
    NSLog(@"%@",path);
    return [path stringByAppendingPathComponent:@"student.sqlite"];
}
#pragma mark - **************** 數據庫操作
//創建表
- (IBAction)createTable:(UIButton *)sender
{
    //先打開數據庫
    BOOL isOpen = [_db open];
    if (isOpen)
    {
        //打開成功,創建表
        //判斷表是否存在
        BOOL isExist = [_db tableExists:@"student"];
        if (isExist == NO)
        {
            //不存在表,創建
            [_db executeUpdate:@"create table student(student_id integer primary key autoincrement not null,name text not null,age integer not null)"];
        }
    }
    [_db close];
}
- (IBAction)insertClick:(UIButton *)sender
{
    //1.打開數據庫
    BOOL isOpen = [_db open];
    if (isOpen == NO)
    {
        [_db close];
        return;
    }
    [_db executeUpdateWithFormat:@"insert into student (name,age) values (%@,%d)",_nameTf.text,[_ageTf.text integerValue]];
    [_db close];
}
- (IBAction)updateClick:(UIButton *)sender
{
    BOOL isOpen = [_db open];
    if (isOpen == NO)
    {
        [_db close];
        return;
    }
    [_db executeUpdate:@"update student set age = 22 where student_id = 1"];
    [_db close];
}
- (IBAction)deleteClick:(UIButton *)sender
{
    BOOL isOpen = [_db open];
    if (isOpen == NO)
    {
        [_db close];
        return;
    }
    [_db executeUpdate:@"delete from student where age > 22"];
    [_db close];
}
- (IBAction)selectClick:(UIButton *)sender
{
    //1.打開數據庫
    BOOL isOpen = [_db open];
    if (isOpen == NO)
    {
        [_db close];
        return;
    }
    //2.獲取結果集
    FMResultSet *resultSet = [_db executeQuery:@"select name,age from student where student_id > 1"];
    //3.從結果集中單步查詢
    while ([resultSet next] == YES)
    {
        NSString *name = [resultSet stringForColumn:@"name"];
        int age = [resultSet intForColumn:@"age"];
        NSLog(@"%@:%d",name,age);
    }
    [resultSet close];
    [_db close];
}

二、DAO(數據訪問對象)
項目:Database_DAO0414
DAO(Data Access Object) 數據訪問對象是第一個面向對象的數據庫接口,它顯露了 Microsoft Jet 數據庫引擎(由 Microsoft Access 所使用),并允許 Visual Basic 開發者通過 ODBC 像直接連接到其他數據庫一樣,直接連接到 Access 表。DAO 最適用于單系統應用程序或小范圍本地分布使用。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • The only limit is your imagination. 唯一的局限是你的想象力。 我是新手,一個...
    小小猿閱讀 829評論 2 4
  • 前言: 今天,就讓我們,重點學習一下FMDB。 FMDB學習 一、基本介紹 簡介:-由于iOS中原生的 SQLit...
    麥穗0615閱讀 3,804評論 0 27
  • 閱讀完本書,首先給我的感覺是內容有點對不起它的¥59.80定價,全書主要講了兩塊內容,一塊是SQLite3,...
    瑞小萌閱讀 2,878評論 4 33
  • 摘要 IOS操作數據庫,SQLite3和coredata是兩個非常好的選擇,但是對于我們這些掌握了其他數據庫語言的...
    俊月閱讀 5,077評論 0 6
  • 一、FMDB基本使用 1、什么是FMDB? FMDB是一款簡潔、易用的封裝庫。因此,在這里推薦使用第三方框架FMD...
    豆寶的老公閱讀 10,317評論 1 14