ios使用的資料庫
⑴ ios開發是如何訪問資料庫的
第一,我不是來高手,第自二,我可以分享下我的心得。一般的數據量很小的項目,沒必要使用資料庫,如果只是保存寫用戶信息,大可以用其他的方法,用keychain或者nsuserdefault或者其他的都可以。任何一個項目都需要保存一個使用狀態,不能每次打開項目的時候都和第一次運行一樣,完全新,要給人以使用過的感覺就要存儲一些歷史數據。如果怕影響用戶體驗的話,可以多開線程在後台去對數據操作(數據量大的情況下),記得對線程要回收。如果你對保存數據比較迷茫的話,你可以google一下ios的四種數據持久化,對於sqlite和coredata,我個人認為只是兩種不同的存儲方法,一種是小型輕量級sqlite資料庫,所有移動設備經常用到的,還有一種是蘋果針對ios操作系統開發的coredata數據存儲,具體孰勝孰略還有待你自己去了解,一般如果我的資料庫要非常多的表格互相關聯最後查詢一條結果那麼我會採用sqlite,如果存儲一些有規律的數據那麼我會採用coredata,沒有哪個更好的說法,只能說這兩種都各有千秋,而我聽前輩們說,coredata只是蘋果對sqlite的又一次封裝而已,方便操作但也局限操作
⑵ ios應用可以採用的雲資料庫有哪些
雖然沒有代碼和demo神馬的,但用戶數據必須搭建一個伺服器,iCloud、網盤也不可用來放用戶數據版,因為它是很封閉的權,除你以外任何人都沒有許可權訪問,如果擔心數據巨大伺服器承受不了
可以將用戶數據都儲存在你封裝的APP里,用的時候從每一個客戶端APP里調用就好了,而且蘋果新出的語言swift2是開源的,應該就不是問題了吧。
⑶ 現在ios 開發中用哪個開源資料庫比較好
1. OrmLite
OrmLite 不是 Android 平台專用的ORM框架,它是Java ORM。支持JDBC連接,Spring以及Android平台。語法中廣泛使用了註解(Annotation)。
2. SugarORM
SugarORM 是 Android 平台專用ORM。提供簡單易學的APIs。可以很容易的處理1對1和1對多的關系型數據,並通過3個函數save(), delete() 和 find() (或者 findById()) 來簡化CRUD基本操作。
要啟用SugarORM,需要在你的應用程序 AndroidManifest.xml 配置中添加如下meta-data標簽:
<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擴展需要保存的數據類:
public class User extends SugarRecord<User> {
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;
}
}
要添加一個User,代碼如下:
User johndoe = new User(getContext(),"john.doe","secret",19);
johndoe.save(); //stores the new user into the database
3. GreenDAO
當性能很重要時(數據訪問頻繁),GreenDao是一個很快的解決方案,它能夠支持數千條記錄的CRUD每秒,和OrmLite相比,GreenDAO要快幾乎4.5倍。(准確數據請自行benchmark)。
GreenDAO小於100KB,所以對於應用程序APK的大小影響很小。
這里有一個教程,演示如何使用Android Studio,在Android應用程序中使用GreenDAO框架。
4. Active Android
Active Record(活動目錄)是Yii、Rails等框架中對ORM實現的典型命名方式。Active Android 幫助你以面向對象的方式來操作SQLite。
5. Realm
Realm 是一個將可以使用的Android ORM,基於C++編寫,直接運行在你的設備硬體上(不需要被解釋),因此運行很快。它同時是開源跨平台的,iOS的代碼可以在GitHub找到,你還可以找到Objective C以及Swift編寫的Realm使用實例。
⑷ ios fmdb 使用什麼資料庫
1.給UITableView中的UIButton添加UIControlEventTouchUpInside 的事件處理函數 2.封裝操作資料庫的類,可以用單例。在里包含了你所以的操作數據中的操作。分離資料庫操作 3.在UIBUtton的響應事件中,調用資料庫操作的單例類來實現你要取的upload...
⑸ ios中使用資料庫應注意什麼
iPhone中資料庫使用方法是本文要介紹的內容,直接進入話題介紹,iPhone 中使用名為 SQLite 的資料庫管理系統。它是一款輕型的資料庫,是遵守ACID的關聯式資料庫管理系統,它的設計目標是嵌入式的,而且目前已經在很多嵌入式產品中使用了它,它佔用資源非常的低,
在嵌入式設備中,可能只需要幾百K的內存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統,同時能夠跟很多程序語言相結合,比如 Tcl、PHP、Java 等,還有 ODBC 介面,同樣比起 Mysql、PostgreSQL 這兩款開源世界著名的資料庫管理系統來講,它的處理速度比他們都快。
其使用步驟大致分為以下幾步:
1. 創建DB文件和表格
2. 添加必須的庫文件(FMDB for iPhone, libsqlite3.0.dylib)
3. 通過 FMDB 的方法使用 SQLite
創建DB文件和表格
$ sqlite3 sample.db sqlite> CREATE TABLE TEST( ...> id INTEGER PRIMARY KEY, ...> name VARCHAR(255) ...> );
簡單地使用上面的語句生成資料庫文件後,用一個圖形化SQLite管理工具,比如 Lita 來管理還是很方便的。
然後將文件(sample.db)添加到工程中。
添加必須的庫文件(FMDB for iPhone, libsqlite3.0.dylib)
首先添加 Apple 提供的 sqlite 操作用程序庫 ibsqlite3.0.dylib 到工程中。位置如下
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS${VER}.sdk/usr/lib/libsqlite3.0.dylib
這樣一來就可以訪問資料庫了,但是為了更加方便的操作資料庫,這里使用 FMDB for iPhone。
svn co http://flycode.googlecode.com/svn/trunk/fmdb fmdb
如上下載該庫,並將以下文件添加到工程文件中:
FMDatabase.h FMDatabase.m FMDatabaseAdditions.h FMDatabaseAdditions.m FMResultSet.h FMResultSet.m
通過 FMDB 的方法使用 SQLite
使用 SQL 操作資料庫的代碼在程序庫的 fmdb.m 文件中大部分都列出了、只是連接資料庫文件的時候需要注意 — 執行的時候,參照的資料庫路徑位於 Document 目錄下,之前把剛才的 sample.db 文件拷貝過去就好了。
位置如下
/Users/xxxx/Library/Application Support/iPhone Simulator/User/Applications/xxxx/Documents/sample.db
BOOL success; NSError *error; NSFileManager *fm = [NSFileManager defaultManager]; NSArray *paths = (NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *writableDBPath = [documentsDirectory :@"sample.db"]; success = [fm fileExistsAtPath:writableDBPath]; if(!success){ NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] :@"sample.db"]; success = [fm ItemAtPath:defaultDBPath toPath:writableDBPath error:&error]; if(!success){ NSLog([error localizedDescription]); } } // 連接DB FMDatabase* db = [FMDatabase databaseWithPath:writableDBPath]; if ([db open]) { [db setShouldCacheStatements:YES]; // INSERT [db beginTransaction]; int i = 0; while (i++ < 20) { [db executeUpdate:@"INSERT INTO TEST (name) values (?)" , [NSString stringWithFormat:@"number %d", i]]; if ([db hadError]) { NSLog(@"Err %d: %@", [db lastErrorCode], [db lastErrorMessage]); } } [db commit]; // SELECT FMResultSet *rs = [db executeQuery:@"SELECT * FROM TEST"]; while ([rs next]) { NSLog(@"%d %@", [rs intForColumn:@"id"], [rs stringForColumn:@"name"]); } [rs close]; [db close]; }else{ NSLog(@"Could not open db."); }
⑹ IOS的數據是如何交互的,用什麼建立資料庫
一種實現不同系統之間數據交互的方法,將需要服務的客戶進程與提供服務的服務進回程通過介面答代理進行交互,該介面代理接收命令行參數並獨立運行
可以總結為向第三方系統推送數據或從伺服器拉回數據兩種
給點初步建議:
◎ 不暴露資料庫,否則:人家統計你等待、人家鎖表你死機、人家改數你糾錯;
◎ 約松耦合越好,能批處理就不要實時處理,能用數據交換就不用介面調用,能用非同步介面就不用同步介面;
◎ 是不是WebService隨意,不過現在有不少輕量級方案,主要還是看安全性和性能要求了。
⑺ ios中怎麼使用資料庫存儲數據
1.NSKeyedArchiver:採用歸檔的形式來保存數據,該數據對象需要遵守NSCoding協議,...
2.NSUserDefaults:用來保存應用程序設置專和屬性、用戶屬保存的數據。 ...
3. Write寫入方式:永久保存在磁碟中。 ...
4. SQLite:採用SQLite資料庫來存儲數據。
⑻ ios開發 什麼情況要用到資料庫
第一,我不是高手,第二,我可以分享下我的心得。一般的數據量很小的項目,沒必要使用資料庫,如果只是保存寫用戶信息,大可以用其他的方法,用keychain或者nsuserdefault或者其他的都可以。任何一個項目都需要保存一個使用狀態,不能每次打開項目的時候都和第一次運行一樣,完全新,要給人以使用過的感覺就要存儲一些歷史數據。如果怕影響用戶體驗的話,可以多開線程在後台去對數據操作(數據量大的情況下),記得對線程要回收。如果你對保存數據比較迷茫的話,你可以google一下ios的四種數據持久化,對於sqlite和coredata,我個人認為只是兩種不同的存儲方法,一種是小型輕量級sqlite資料庫,所有移動設備經常用到的,還有一種是蘋果針對ios操作系統開發的coredata數據存儲,具體孰勝孰略還有待你自己去了解,一般如果我的資料庫要非常多的表格互相關聯最後查詢一條結果那麼我會採用sqlite,如果存儲一些有規律的數據那麼我會採用coredata,沒有哪個更好的說法,只能說這兩種都各有千秋,而我聽前輩們說,coredata只是蘋果對sqlite的又一次封裝而已,方便操作但也局限操作
⑼ 請問iOS怎麼連接網上的MySQL資料庫
可以使用MySQL推出的MySQLConnector/Net組件,該組件是MySQL為ADO.NET訪問MySQL資料庫設計的.NET專用訪問組件,完成該組件後,需要在項目中引用這個組件,之後在程序中引用命名空間MySql.Data.MySqlClient,即可開始進行連接MySQL資料庫的操作了,示例如下:
protected voidMySqlCon()
{
//資料庫連接字元串跟連接SQLSERVER沒有區別
string constr = "server=localhost;UserId=root;password=root;Database=test";
//下面使用MySql Connector/net提供的專用對象
MySqlConnection mycon = new MySqlConnection(constr);
mycon.Open();
MySqlCommandmycmd = new MySqlCommand("select * from users", mycon);
MySqlDataReader myreader = mycmd.ExecuteReader();
while (myreader.Read())
{
if (myreader.HasRows)
{
MessageBox.Show(myreader.GetString("email") );
}
}
myreader.Close();
mycon.Close();
⑽ ios開發用什麼資料庫
一般的數據量很小的項目,沒必要使用資料庫,如果只是保存寫用戶信息,大可以用其他的方法,用keychain或者nsuserdefault或者其他的都可以。任何一個項目都需要保存一個使用狀態,不能每次打開項目的時候都和第一次運行一樣,完全新,要給人以使用過的感覺就要存儲一些歷史數據。如果怕影響用戶體驗的話,可以多開線程在後台去對數據操作(數據量大的情況下),記得對線程要回收。如果你對保存數據比較迷茫的話,你可以google一下ios的四種數據持久化,對於sqlite和coredata,我個人認為只是兩種不同的存儲方法,一種是小型輕量級sqlite資料庫,所有移動設備經常用到的,還有一種是蘋果針對ios操作系統開發的coredata數據存儲,具體孰勝孰略還有待你自己去了解,一般如果我的資料庫要非常多的表格互相關聯最後查詢一條結果那麼我會採用sqlite,如果存儲一些有規律的數據那麼我會採用coredata,沒有哪個更好的說法,只能說這兩種都各有千秋,而我聽前輩們說,coredata只是蘋果對sqlite的又一次封裝而已,方便操作但也局限操作