iOS數(shù)據(jù)庫可視化工具--直接在iPhone操作你的數(shù)據(jù)庫

前言:

不知道大家平時在iOS中需要查看數(shù)據(jù)庫內(nèi)容的時候是否有困擾取刃,以前做法都是把數(shù)據(jù)庫文件導出到電腦上,然后通過mac上的數(shù)據(jù)庫可視化軟件打開查看里面的數(shù)據(jù)。一來一回挺折騰的第岖,不滿于這種浪費時間效率低下的方式,所以想著要是能夠直接在手機上或者模擬器上查看數(shù)據(jù)庫多好侵续,直接操作數(shù)據(jù)庫多好,可以大大節(jié)省時間憾儒,提高工作效率询兴。

實現(xiàn):

  • 因為在iOS中的數(shù)據(jù)庫存儲大多是基于SQLite框架實現(xiàn)的,其他的比如Realm是有自己的一套數(shù)據(jù)庫存儲引擎起趾,當然也有部分選擇蘋果自家的Core Data來實現(xiàn)的。在這里我只對基于SQLite實現(xiàn)的做了一個可視化的方案警儒,后續(xù)可能會對其他存儲引擎的支持训裆。
  • 實現(xiàn)方式就是通過對sqlite的api一個封裝可以支持通用的查詢眶根,刪除,修改边琉。這里暫時是沒有做新增一行的功能属百。但也可以解決大部分查看數(shù)據(jù)源庫,更新數(shù)據(jù)庫的需求了变姨。

效果可以看下圖:


databasedemo.gif
  • 可以針對某一個table刪除具體選中的一行,可以修改某一行某一個字段的值(當然主鍵除外)。我們都知道平常修改某一個行數(shù)據(jù)或者刪除的話都要限定一個where條件扩氢,一般來說是去判斷一個唯一標志的字段录豺,但是我們并不能知道數(shù)據(jù)庫的唯一標志是哪一個字段饭弓,或者有些數(shù)據(jù)庫也是沒有主鍵存在的,當然也可以羅列出當前行的所有字段去判斷兢哭,這就有點費精力了,有些字段多的就需要判斷很多夫嗓。所以這里我用到了一個數(shù)據(jù)庫的影藏字段rowid迟螺,通過這個rowid去找到我們具體要修改的哪一行,但是rowid是自增的并且不會重復出現(xiàn)的舍咖,如果刪除了一條數(shù)據(jù)矩父,后面新增的數(shù)據(jù)rowid也是會在原來的最大rowid上+1的窍株,如果刪除了某一行就會導致rowid和我們顯示出來的row對應不上了瑰钮,感覺才找到的一條路瞬間好像又有點走不通了冒滩,不過我們可以加上限制條件找出這一行的rowid,然后通過rowid去修改這一行的數(shù)據(jù)浪谴。比如要修改顯示中的第三行數(shù)據(jù)可以通過這樣的一個條件語句去判斷“WHERE rowid IN (SELECT rowid FROM table limit 2,1)”开睡。
  • update數(shù)據(jù)庫的話也是通過上面的rowid去找到具體一行當做限定條件去修改,不過我們可視化顯示出來都是字符串類型的,修改成自己想要的數(shù)據(jù)哮翘,傳去update的時候再把string修改成對應字段所有對應的數(shù)據(jù)類型去update限煞。

使用

CocoaPods

1.更新cocoapods到最新版本健霹。
2.添加 pod 'DatabaseVisual' 到你的podfile文件中。
3.運行 pod install 或者 pod update.
4.import <DatabaseVisual/DatabaseManager.h>.

Manually

1.下載DatabaseManager文件夾.
2.添加源文件到你的項目工程.
3.import "DatabaseManager.h"

工具使用方法也超級簡單跑揉,指定你當前存放數(shù)據(jù)庫的文件夾就行了扮饶。會把文件夾下面的所有.db .sqlite .sqlite3后綴的文件顯示出來甜无。

//you can specify the folder where the database resides
[DatabaseManager sharedInstance].dbDocumentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
[[DatabaseManager sharedInstance] showTables];

已經(jīng)更新在github上。如果喜歡請給個??哥遮。
寫得倉促岂丘,測試樣本也不多眠饮,有什么問題請及時提給我奥帘。當然有什么好的建議也歡迎提給我,大家共同探討做得更好仪召。
后期應該會考慮加入Realm等其他存儲方式的可視化寨蹋。

最后附上 DatabaseVisual地址


歡迎轉載,并注明出處

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末扔茅,一起剝皮案震驚了整個濱河市已旧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌召娜,老刑警劉巖运褪,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異玖瘸,居然都是意外死亡秸讹,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門雅倒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來璃诀,“玉大人,你說我怎么就攤上這事屯断∥穆玻” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵殖演,是天一觀的道長氧秘。 經(jīng)常有香客問我,道長趴久,這世上最難降的妖魔是什么丸相? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮彼棍,結果婚禮上灭忠,老公的妹妹穿的比我還像新娘膳算。我一直安慰自己,他們只是感情好弛作,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布涕蜂。 她就那樣靜靜地躺著,像睡著了一般映琳。 火紅的嫁衣襯著肌膚如雪机隙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天萨西,我揣著相機與錄音有鹿,去河邊找鬼。 笑死谎脯,一個胖子當著我的面吹牛葱跋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播源梭,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼娱俺,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了咸产?” 一聲冷哼從身側響起矢否,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎脑溢,沒想到半個月后僵朗,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡屑彻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年验庙,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片社牲。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡粪薛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出搏恤,到底是詐尸還是另有隱情违寿,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布熟空,位于F島的核電站藤巢,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏息罗。R本人自食惡果不足惜掂咒,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧绍刮,春花似錦温圆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至嫉戚,卻和暖如春刨裆,著一層夾襖步出監(jiān)牢的瞬間澈圈,已是汗流浹背彬檀。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留瞬女,地道東北人窍帝。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像诽偷,于是被迫代替她去往敵國和親坤学。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容