iOS sqlite數(shù)據(jù)庫(kù)操作。步驟是:
創(chuàng)新互聯(lián)基于成都重慶香港及美國(guó)等地區(qū)分布式IDC機(jī)房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動(dòng)大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專(zhuān)業(yè)成都托管服務(wù)器報(bào)價(jià),主機(jī)托管價(jià)格性價(jià)比高,為金融證券行業(yè)服務(wù)器托管,ai人工智能服務(wù)器托管提供bgp線路100M獨(dú)享,G口帶寬及機(jī)柜租用的專(zhuān)業(yè)成都idc公司。
先加入sqlite開(kāi)發(fā)庫(kù)libsqlite3.dylib,
新建或打開(kāi)數(shù)據(jù)庫(kù),
創(chuàng)建數(shù)據(jù)表,
插入數(shù)據(jù),
查詢數(shù)據(jù)并打印
NSString *sqlQuery = @"SELECT * FROM PERSONINFO";
sqlite3_stmt * statement;
if (sqlite3_prepare_v2(db, [sqlQuery UTF8String], -1, statement, nil) == SQLITE_OK) {
while (sqlite3_step(statement) == SQLITE_ROW) {
char *name = (char*)sqlite3_column_text(statement, 1);
NSString *nsNameStr = [[NSString alloc]initWithUTF8String:name];
int age = sqlite3_column_int(statement, 2);
char *address = (char*)sqlite3_column_text(statement, 3);
NSString *nsAddressStr = [[NSString alloc]initWithUTF8String:address];
NSLog(@"name:%@ age:%d address:%@",nsNameStr,age, nsAddressStr);
}
}
sqlite3_close(db);
LeanCloud 本就支持 node 以及 python 構(gòu)建 web hosting 的 web app,做網(wǎng)站完全可以,我們有很多成熟的客戶都是使用 node 來(lái)做自己的網(wǎng)站的。
另外,如果您有自己的 php 服務(wù)器,完全可以使用我們 php 的 sdk,如果您覺(jué)得 sdk 太重了,或者您只想使用 LeanCloud 一部分核心的功能,您完全可以調(diào)用 LeanCloud 開(kāi)放的 REST API 進(jìn)行構(gòu)建您自己的業(yè)務(wù)邏輯。只要您會(huì)使用 php 發(fā)送 HTTP(GET,POST,PUT,DELETE) 請(qǐng)求就足矣笑傲 LeanCloud 了。
另外關(guān)于數(shù)據(jù)同步,因?yàn)槲覀兯械?SDK 都是調(diào)用 REST API 進(jìn)行數(shù)據(jù)交互的,并且高性能群集服務(wù)器幫您 hold 住數(shù)據(jù)的增刪改查,查詢緩存等等,保證數(shù)據(jù)的一致性。所以不管您是開(kāi)發(fā) iOS ,Android,Windows 都是調(diào)用統(tǒng)一的 API。
1. OrmLite
OrmLite 不是 Android 平臺(tái)專(zhuān)用的ORM框架,它是Java ORM。支持JDBC連接,Spring以及Android平臺(tái)。語(yǔ)法中廣泛使用了注解(Annotation)。
2. SugarORM
SugarORM 是 Android 平臺(tái)專(zhuān)用ORM。提供簡(jiǎn)單易學(xué)的APIs??梢院苋菀椎奶幚?對(duì)1和1對(duì)多的關(guān)系型數(shù)據(jù),并通過(guò)3個(gè)函數(shù)save(), delete() 和 find() (或者 findById()) 來(lái)簡(jiǎn)化CRUD基本操作。
要啟用SugarORM,需要在你的應(yīng)用程序 AndroidManifest.xml 配置中添加如下meta-data標(biāo)簽:
meta-data android:name="DATABASE" android:value="my_database.db" /
meta-data android:name="VERSION" android:value="1" /
meta-data android:name="QUERY_LOG" android:value="true" /
meta-data android:name="DOMAIN_PACKAGE_NAME" android:value="com.my-domain" /
然后就可以從SugarORM擴(kuò)展需要保存的數(shù)據(jù)類(lèi):
public class User extends SugarRecordUser {
String username;
String password;
int age;
@Ignore
String bio; //this will be ignored by SugarORM
public User() { }
public User(String username, String password,int age){
this.username = username;
this.password = password;
this.age = age;
}
}
要添加一個(gè)User,代碼如下:
User johndoe = new User(getContext(),"john.doe","secret",19);
johndoe.save(); //stores the new user into the database
3. GreenDAO
當(dāng)性能很重要時(shí)(數(shù)據(jù)訪問(wèn)頻繁),GreenDao是一個(gè)很快的解決方案,它能夠支持?jǐn)?shù)千條記錄的CRUD每秒,和OrmLite相比,GreenDAO要快幾乎4.5倍。(準(zhǔn)確數(shù)據(jù)請(qǐng)自行benchmark)。
GreenDAO小于100KB,所以對(duì)于應(yīng)用程序APK的大小影響很小。
這里有一個(gè)教程,演示如何使用Android Studio,在Android應(yīng)用程序中使用GreenDAO框架。
4. Active Android
Active Record(活動(dòng)目錄)是Yii、Rails等框架中對(duì)ORM實(shí)現(xiàn)的典型命名方式。Active Android 幫助你以面向?qū)ο蟮姆绞絹?lái)操作SQLite。
5. Realm
Realm 是一個(gè)將可以使用的Android ORM,基于C++編寫(xiě),直接運(yùn)行在你的設(shè)備硬件上(不需要被解釋?zhuān)虼诉\(yùn)行很快。它同時(shí)是開(kāi)源跨平臺(tái)的,iOS的代碼可以在GitHub找到,你還可以找到Objective C以及Swift編寫(xiě)的Realm使用實(shí)例。
第一,我不是高手,第二,我可以分享下我的心得。一般的數(shù)據(jù)量很小的項(xiàng)目,沒(méi)必要使用數(shù)據(jù)庫(kù),如果只是保存寫(xiě)用戶信息,大可以用其他的方法,用keychain或者nsuserdefault或者其他的都可以。任何一個(gè)項(xiàng)目都需要保存一個(gè)使用狀態(tài),不能每次打開(kāi)項(xiàng)目的時(shí)候都和第一次運(yùn)行一樣,完全新,要給人以使用過(guò)的感覺(jué)就要存儲(chǔ)一些歷史數(shù)據(jù)。如果怕影響用戶體驗(yàn)的話,可以多開(kāi)線程在后臺(tái)去對(duì)數(shù)據(jù)操作(數(shù)據(jù)量大的情況下),記得對(duì)線程要回收。如果你對(duì)保存數(shù)據(jù)比較迷茫的話,你可以google一下ios的四種數(shù)據(jù)持久化,對(duì)于sqlite和coredata,我個(gè)人認(rèn)為只是兩種不同的存儲(chǔ)方法,一種是小型輕量級(jí)sqlite數(shù)據(jù)庫(kù),所有移動(dòng)設(shè)備經(jīng)常用到的,還有一種是蘋(píng)果針對(duì)ios操作系統(tǒng)開(kāi)發(fā)的coredata數(shù)據(jù)存儲(chǔ),具體孰勝孰略還有待你自己去了解,一般如果我的數(shù)據(jù)庫(kù)要非常多的表格互相關(guān)聯(lián)最后查詢一條結(jié)果那么我會(huì)采用sqlite,如果存儲(chǔ)一些有規(guī)律的數(shù)據(jù)那么我會(huì)采用coredata,沒(méi)有哪個(gè)更好的說(shuō)法,只能說(shuō)這兩種都各有千秋,而我聽(tīng)前輩們說(shuō),coredata只是蘋(píng)果對(duì)sqlite的又一次封裝而已,方便操作但也局限操作
可以用啊,當(dāng)然必須可以用啊,
keychain,NSUserdefault,plist,coredata,sqlite,文件的形式的存儲(chǔ),這6個(gè)一般是最常用的,其他的我也沒(méi)有用過(guò),也不知道性能咋樣,畢竟我也不是大神,
keychain,鑰匙串,那種無(wú)線的密碼保存一般都是用的是這個(gè),
NSUserdefault 這個(gè)適合存儲(chǔ)小型的數(shù)據(jù),一般就存?zhèn)€用戶的id,用來(lái)判斷是否登錄
plist 這個(gè)你看又好多改變字體的大小,主題,一般用的是plist
coredata和這個(gè)sqlist,,這兩個(gè)看你用哪個(gè)方便用哪個(gè),熟練用哪個(gè)就用哪個(gè),一般存儲(chǔ)歷史記錄,緩存很多的數(shù)據(jù),大型的數(shù)據(jù),一般用這2個(gè)其中1個(gè)
文件,文章,特別長(zhǎng)的文章,我一般用文件存儲(chǔ),畢竟存的東西少,這是一篇文章的所有內(nèi)容
理論上是可以直接讀取數(shù)據(jù)庫(kù)的,相當(dāng)于遠(yuǎn)程連接著數(shù)據(jù)。簡(jiǎn)單說(shuō)明一下,就是用客戶端組件,設(shè)置數(shù)據(jù)庫(kù)地址、端口、用戶、密碼,然后直接select
update,把命令提交到數(shù)據(jù)庫(kù)。
但問(wèn)題在于數(shù)據(jù)庫(kù)的信息,用戶密碼存儲(chǔ)在客戶端,容易給反編譯出來(lái)(難度這個(gè)我不清楚,你做ios開(kāi)發(fā)可能清楚點(diǎn))。而當(dāng)發(fā)生安全問(wèn)題的時(shí)候,要改密碼或者數(shù)據(jù)庫(kù)地址,麻煩事就來(lái)了,總不能讓用戶再升級(jí)一次(ios的發(fā)布期你也知道)。
此外還要考慮數(shù)據(jù)在傳輸過(guò)程中是否加密,是否證書(shū)方式,現(xiàn)在的網(wǎng)絡(luò),劫持植入廣告滿街都是。好像蘋(píng)果那邊有限制今后的新軟件要ssl才行。
當(dāng)前文章:ios開(kāi)發(fā)數(shù)據(jù)庫(kù),iOS開(kāi)發(fā)者網(wǎng)站
標(biāo)題網(wǎng)址:http://jinyejixie.com/article34/dssdepe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷(xiāo)推廣、搜索引擎優(yōu)化、小程序開(kāi)發(fā)、面包屑導(dǎo)航、外貿(mào)建站、微信公眾號(hào)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)