android開發(fā)中sqlite代碼生成器

? 大家好益老,我是湯博樂是尔,這是我在簡書上第一篇android開發(fā)技術(shù)文章峻汉。寫文之前想來想去不知道寫什么烙样,最后還是推薦一款我自己開發(fā)的sqlite數(shù)據(jù)庫訪問代碼生成器冯遂。如果你覺得我的博文寫得不錯,還望您能持續(xù)關(guān)注我的博文谒获。當然也希望您能多提提意見蛤肌,讓我有更多機會進步。

1. 生成器簡介

? ? 這款代碼生成器與市面上的ORM庫(ORMLite批狱、GreenDao裸准、DBFlow等)有些不同。通常情況下赔硫,我們使用ORM庫的時候炒俱,都要通過代碼方式去構(gòu)建數(shù)據(jù)庫表格,比如ORMLite和DBFlow通過反射去逐一構(gòu)建每一張表格,或者像GreenDao一樣使用其子工程GreenDaoGenerator編寫代碼去逐一構(gòu)建每一張表格权悟。而這款代碼生成器則是通過解析現(xiàn)有的sqlite數(shù)據(jù)庫文件而后再生成訪問該數(shù)據(jù)庫文件的java代碼(包括數(shù)據(jù)表實體類砸王,數(shù)據(jù)訪問API)。這樣的好處是僵芹,我們只要使用圖形界面工具(比如SQLteStudio处硬、PowerDesigner)設(shè)計出sqlite數(shù)據(jù)庫后使用它來解析該數(shù)據(jù)庫文件,就可以輕松得到訪問該數(shù)據(jù)庫的java代碼拇派。這對于有大量數(shù)據(jù)表操作的應(yīng)用來說是很方便的荷辕。


2. 如何使用

? ? 到該代碼生成器github項目主頁Clone源代碼后,用IntelliJ開發(fā)工具(如果你使用的是Eclipse件豌,請自行拷貝源碼)打開項目疮方,把你的目標sqlite數(shù)據(jù)庫放在項目根目錄下(源碼中有一個測試Unix.db數(shù)據(jù)庫)。然后修改入口Main函數(shù)下的四行代碼茧彤,具體看下面實例:


targetDB 是你的目標數(shù)據(jù)庫骡显,它放在工程根目錄下;modelPackage是數(shù)據(jù)表映射的實體類包名曾掂;apiPackage是數(shù)據(jù)表訪問接口類包名惫谤;outDir是生成代碼的存放目錄,會在工程根目錄生成珠洗。

修改完后溜歪,run一下項目,這樣就會在項目根目錄下的文件夾gen-src生成目標代碼许蓖。最后你把目標代碼復(fù)制到你的android工程下即可蝴猪。是不是很便捷?反正我覺得真他媽的便捷膊爪。


2. 特點

(1)基于SQLiteOpenHelper自阱,支持任何復(fù)雜SQL語句。多表聯(lián)合的復(fù)雜查找操作支持很到位米酬。此外沛豌,對于要支持加密庫sqlcipher,稍微一下SQLiteOpenHelper包名即可。

(2)支持視圖赃额,支持視圖琼懊,支持視圖,重要的事情說三遍爬早。

(3)API接口包含了最常用的增刪改查接口曾沈,很容易修改和擴展

(4)自動生成數(shù)據(jù)表映射實體類(POJO類)舔示,數(shù)據(jù)訪問API,總代碼量相對于GreenDao減少60%


生成實體類代碼截圖

3. 數(shù)據(jù)訪問API使用示例

? ?以下截圖是所生成訪問API。對于目前這部分代碼空免,希望讀者能多提提意見。具體代碼請參照github項目中的AndroidExample。


4. 注意

(1)目標sqlite數(shù)據(jù)庫表中primary key必須命名為"id"(id,Id,ID都行,只要按照2中命名要求即可)

(2)目標sqlite數(shù)據(jù)庫所有表名命名要規(guī)范嚴格按照Pascal(如:CompanyDeparment) 檬输、匈牙利(Score)(如:company_deparment)、 Camel(如:companyDeparment)三種格式中的某一種規(guī)范(不允許混合使用匈棘,只能三選一)丧慈。修改入口Main函數(shù)代碼,指定你的數(shù)據(jù)表名編碼格式和數(shù)據(jù)列名編碼格式主卫,如圖:


轉(zhuǎn)載請注明出處:http://www.reibang.com/p/1872009db0ce

代碼生成器項目主頁:https://github.com/thepacific/sqlite-generator-android

微信公眾號名稱:南國IT技術(shù)園

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末逃默,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子簇搅,更是在濱河造成了極大的恐慌完域,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瘩将,死亡現(xiàn)場離奇詭異吟税,居然都是意外死亡,警方通過查閱死者的電腦和手機姿现,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進店門肠仪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人备典,你說我怎么就攤上這事藤韵。” “怎么了熊经?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長欲险。 經(jīng)常有香客問我镐依,道長,這世上最難降的妖魔是什么天试? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任槐壳,我火速辦了婚禮,結(jié)果婚禮上喜每,老公的妹妹穿的比我還像新娘务唐。我一直安慰自己,他們只是感情好带兜,可當我...
    茶點故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布枫笛。 她就那樣靜靜地躺著,像睡著了一般刚照。 火紅的嫁衣襯著肌膚如雪刑巧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天,我揣著相機與錄音啊楚,去河邊找鬼吠冤。 笑死,一個胖子當著我的面吹牛恭理,可吹牛的內(nèi)容都是我干的拯辙。 我是一名探鬼主播,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼颜价,長吁一口氣:“原來是場噩夢啊……” “哼涯保!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起拍嵌,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤遭赂,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后横辆,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體撇他,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年狈蚤,在試婚紗的時候發(fā)現(xiàn)自己被綠了困肩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡脆侮,死狀恐怖锌畸,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情靖避,我是刑警寧澤潭枣,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站幻捏,受9級特大地震影響盆犁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜篡九,卻給世界環(huán)境...
    茶點故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一谐岁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧榛臼,春花似錦伊佃、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至金刁,卻和暖如春迷捧,著一層夾襖步出監(jiān)牢的瞬間织咧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工漠秋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留笙蒙,地道東北人。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓庆锦,卻偏偏與公主長得像捅位,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子搂抒,可洞房花燭夜當晚...
    茶點故事閱讀 44,629評論 2 354

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,081評論 25 707
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理艇搀,服務(wù)發(fā)現(xiàn),斷路器求晶,智...
    卡卡羅2017閱讀 134,652評論 18 139
  • localStorage是Html5新加入的特性焰雕,這個特性主要用來做瀏覽器本地存儲 一、判斷瀏覽器是否支持loca...
    陳川Lethe閱讀 340評論 0 0
  • 今天是素心源里每周一次的親子讀經(jīng)班芳杏,周老師不在由我?guī)О嗑仄ā5谝淮紊线@個課程也是自我一次挑戰(zhàn)! 原本想著按著流程一個個...
    徐金秋閱讀 394評論 3 4