可以,在ios中有操作sqlite 的API . 也就是說(shuō)ios 可以操作sqlite 數(shù)據(jù)庫(kù)。
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到烏魯木齊網(wǎng)站設(shè)計(jì)與烏魯木齊網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名與空間、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋烏魯木齊地區(qū)。
在ios中我們除了使用數(shù)據(jù)庫(kù)來(lái)解決關(guān)系型數(shù)據(jù)外,還可以使用core data 來(lái)實(shí)現(xiàn)
[img]第一,我不是高手,第二,我可以分享下我的心得。一般的數(shù)據(jù)量很小的項(xiàng)目,沒(méi)必要使用數(shù)據(jù)庫(kù),如果只是保存寫用戶信息,大可以用其他的方法,用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)常用到的,還有一種是蘋果針對(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只是蘋果對(duì)sqlite的又一次封裝而已,方便操作但也局限操作
理論上是可以直接讀取數(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ò)程中是否加密,是否證書方式,現(xiàn)在的網(wǎng)絡(luò),劫持植入廣告滿街都是。好像蘋果那邊有限制今后的新軟件要ssl才行。
github上有第三方實(shí)現(xiàn)的,連接mysql的,但是沒(méi)試過(guò)能不能用。
我個(gè)人覺(jué)得,這種鏈接既不安全,也沒(méi)能體現(xiàn)什么好處,更增加了客戶端很多解析數(shù)據(jù)的負(fù)擔(dān)
iOS 上的sqlite數(shù)據(jù)庫(kù)比較好添加,一般只需要以下兩個(gè)步驟:
1. 添加sqlite3.dylib,可以通過(guò)工程-添加framework和library的方式來(lái)添加,位置一般在/usr/lib/libsqlite.dylib
2. 添加sqlite頭文件,一般在/usr/include下。
這樣準(zhǔn)備工作就做完了。
創(chuàng)建sqlite db:
sqlite3 *database
sqlite3_open(DB_Path, database);
可以使用MySQL推出的MySQLConnector/Net組件,該組件是MySQL為ADO.NET訪問(wèn)MySQL數(shù)據(jù)庫(kù)設(shè)計(jì)的.NET專用訪問(wèn)組件,完成該組件后,需要在項(xiàng)目中引用這個(gè)組件,之后在程序中引用命名空間MySql.Data.MySqlClient,即可開(kāi)始進(jìn)行連接MySQL數(shù)據(jù)庫(kù)的操作了,示例如下:
protected voidMySqlCon()
{
//數(shù)據(jù)庫(kù)連接字符串跟連接SQLSERVER沒(méi)有區(qū)別
string constr = "server=localhost;UserId=root;password=root;Database=test";
//下面使用MySql Connector/net提供的專用對(duì)象
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();