移動開發常用:sqlite資料庫
特點:足夠小, 足夠快(本地資料庫), 使用比較簡單
增刪改查 sql語句
常用軟體:mesasqlite資料庫操作軟體
資料庫操作語言: sql(結構化查詢語言)
常用開源庫: fmdb
sqlite (
)是乙個輕量級的關聯式資料庫。ios sdk很早就支援了 sqlite,在使用時,只需要加入 libsqlite3.dylib依賴以及引入 sqlite3.h標頭檔案即可。但是,原生的 sqlite api 在使用上相當不友好,在使用時,非常不便。於是,開源社群中就出現了一系列將 sqlite api進行封裝的庫,而 fmdb (
)則是開源社群中的優秀者。
fmdb 在使用上相當方便。以下是乙個簡單的例子:
//
// studentmodel.h
// fmdbdemo2
////
#import @inte***ce studentmodel : nsobject
//uid
@property (nonatomic,copy) nsstring *uid;
//名字
@property (nonatomic,copy) nsstring *name;
@property (nonatomic,assign) double score;
//頭像二進位制
@property (nonatomic,strong) nsdata *headimage;
@end
//
// databasemanager.h
// fmdbdemo2
//#import #import "studentmodel.h"
/* 資料庫 很多介面 都有可能 進行訪問,這時我們需要把資料庫管理 設計成乙個單例(單例就是乙個類 只有乙個例項物件,物件的資料在整個程式 中 所有檔案 共享的,類似於全域性變數 )
//sql語句 一條 10個
*/@inte***ce databasemanager : nsobject
//非標準單例 類方法 + default*** + shared*** + instance***
+ (instancetype)defaultmanager;
#pragma mark - 增加
//把乙個model 的資料增加到資料庫
- (void)insertdatawithmodel:(studentmodel *)model;
//連續增加 多個model資料 向資料庫
- (void)insertdatawitharray:(nsarray *)arr isbegintransaction:(bool)isbegine;
#pragma mark - 刪除
/** * 刪除資料
* * @param uid 學生的id
*/- (void)deletedatawithuid:(nsstring *)uid;
#pragma mark - 修改
- (void)updatedatawithuid:(nsstring *)uid newmodel:(studentmodel *)newmodel;
#pragma mark - 查詢
- (nsarray *)fetchalldata;
#pragma mark - 查詢有多少條記錄
- (nsinteger)countofdata;
@end
//// databasemanager.h
// fmdbdemo2
//#import #import "studentmodel.h"
/* 資料庫 很多介面 都有可能 進行訪問,這時我們需要把資料庫管理 設計成乙個單例(單例就是乙個類 只有乙個例項物件,物件的資料在整個程式 中 所有檔案 共享的,類似於全域性變數 )
//sql語句 一條 10個
*/@inte***ce databasemanager : nsobject
//非標準單例 類方法 + default*** + shared*** + instance***
+ (instancetype)defaultmanager;
#pragma mark - 增加
//把乙個model 的資料增加到資料庫
- (void)insertdatawithmodel:(studentmodel *)model;
//連續增加 多個model資料 向資料庫
- (void)insertdatawitharray:(nsarray *)arr isbegintransaction:(bool)isbegine;
#pragma mark - 刪除
/** * 刪除資料
* * @param uid 學生的id
*/- (void)deletedatawithuid:(nsstring *)uid;
#pragma mark - 修改
- (void)updatedatawithuid:(nsstring *)uid newmodel:(studentmodel *)newmodel;
#pragma mark - 查詢
- (nsarray *)fetchalldata;
#pragma mark - 查詢有多少條記錄
- (nsinteger)countofdata;
@end
//
// databasemanager.m
// fmdbdemo2
////
#import "databasemanager.h"
//使用 cocoapods 之後 sqlite2.dylib系統庫 不用再倒入
#import /*
1.建立資料庫(open)
2.建立表(不存在則建立)
3.增刪改查
*/@implementation databasemanager
//非標準單例 類方法 + default*** + shared*** + instance***
//+ (instancetype)defaultmanager
}return manager;
}//單例初始化 的時候 就應該有 資料庫了
- (instancetype)init else
}return self;
}#pragma mark - 建立表
- (void)createtable
}#pragma mark - 增加
//把乙個model 的資料增加到資料庫
- (void)insertdatawithmodel:(studentmodel *)model
nsstring *sql = @"insert into stu(uid,name,score,headimage) values (?,?,?,?)";
if (![_database executeupdate:sql,model.uid,model.name,@(model.score),model.headimage])
}/**
* 增加多個 model
* * @param arr model 陣列
* @param isbegine 是否開啟資料庫事務
*//*
資料庫插入資料操作 就是 檔案io操作(讀寫磁碟) ,讀寫磁碟過程 是乙個耗時過程,當我們 連續 增加 多條資料的時候,會影響資料庫的寫操作(比較慢)如果要想提高寫效率那麼 我們 可以開始資料庫事務,開啟事務之後 增加多條資料的時候不會立即寫入資料庫磁碟而是先把資料放在內容,等提交事務的一起 寫一次 磁碟
*/- (void)insertdatawitharray:(nsarray *)arr isbegintransaction:(bool)isbegine
}@catch (n***ception *exception)
@finally
}}else
}}#pragma mark - 刪除
/** * 刪除資料
* * @param uid 學生的id
*/- (void)deletedatawithuid:(nsstring *)uid
}#pragma mark - 修改
- (void)updatedatawithuid:(nsstring *)uid newmodel:(studentmodel *)newmodel
}#pragma mark - 根據uid 查詢存在不存在
- (bool)i***istdatawithuid:(nsstring *)uid
return no;
}#pragma mark - 查詢
- (nsarray *)fetchalldata
return arr ;
}#pragma mark - 查詢有多少條記錄
- (nsinteger)countofdata
return 0;
}@end
SQLite使用方法
sqlite是嵌入在android系統中的輕量級資料庫,下面讓我通過 檢視如何使用sqlite語句去運算元據庫。package com.music.utils import android.content.contentvalues import android.content.context im...
簡單的Sqlite使用方法
sqlite的作用不言而喻,就是幫助開發者建立本地資料庫,儲存一些基本資訊。不做過多闡述,需要的深入了解的可以找度娘,本文是針對sqlite小白在使用上提供一些例項。pod sqlite.swift 以下表字段做例項說明。1 與資料庫建立連線 與資料庫建立連線 mutating func conne...
sqlite3的基本使用方法
在虛擬機上安裝 sqlite3 apt get install sqlite3 在命令列下使用資料庫 1.建立資料庫 sqlite3 student.db 2.建立表 create table stu id varchar 8 name varchar 20 ageinteger ps 在此為stu...