亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一款安卓SQLite數(shù)據(jù)庫對(duì)象關(guān)系映射框架的開發(fā)

        2019-11-13 01:33:45王巖施一飛
        科技視界 2019年30期
        關(guān)鍵詞:安卓框架

        王巖 施一飛

        【摘 要】安卓操作系統(tǒng)內(nèi)嵌的SQLite數(shù)據(jù)庫適用于在移動(dòng)設(shè)備保存少量的數(shù)據(jù),但目前業(yè)界一直缺少適合SQLite數(shù)據(jù)庫的映射框架,能公開源代碼的則更為罕見。本文就開發(fā)效率提升和容錯(cuò)問題等方面,描述了一款SQLite對(duì)象關(guān)系映射框架的設(shè)計(jì)實(shí)現(xiàn)思路。并以實(shí)際案例,對(duì)比使用前后的效率提升結(jié)果。

        【關(guān)鍵詞】對(duì)象關(guān)系映射;SQLite;框架;安卓

        中圖分類號(hào): TP277 文獻(xiàn)標(biāo)識(shí)碼: A文章編號(hào): 2095-2457(2019)30-0051-002

        DOI:10.19694/j.cnki.issn2095-2457.2019.30.024

        了解安卓系統(tǒng)的人都知道,SQLite是一款開源的輕量級(jí)關(guān)系型數(shù)據(jù)庫,安卓系統(tǒng)原生內(nèi)建了SQLite的實(shí)現(xiàn),以文件存儲(chǔ)的方式在移動(dòng)設(shè)備中存儲(chǔ)數(shù)據(jù)。而現(xiàn)在針對(duì)SQLite數(shù)據(jù)庫的對(duì)象關(guān)系映射,開發(fā)了一款新的框架,解決了SQLite在編程時(shí)的效率和容錯(cuò)問題,它的名稱是ChopinLite。這款框架既可作為安卓系統(tǒng)開發(fā)的實(shí)用工具,也可作為本科或高職專業(yè)移動(dòng)開發(fā)課程的內(nèi)容。

        根據(jù)以往的體驗(yàn),在使用Java語言進(jìn)行各類數(shù)據(jù)庫的相關(guān)操作時(shí),會(huì)經(jīng)常用到Hibernate等框架;而且在Java語言編程教學(xué)中,一般也會(huì)把Hibernate框架作為教學(xué)內(nèi)容。當(dāng)體驗(yàn)過使用Hibernate框架給編程帶來的便利后,會(huì)發(fā)現(xiàn)進(jìn)入安卓開發(fā)時(shí),對(duì)于SQLite數(shù)據(jù)庫并未有類似框架的支持。又因?yàn)榫唭?nèi)存的需要,安卓系統(tǒng)不適合使用較復(fù)雜的大型框架,只能使用輕量級(jí)的框架。而目前能支持SQLite數(shù)據(jù)庫的第三方框架種類欠豐富,功能欠完善,操作也欠優(yōu)化。以目前較為流行的OrmLite框架為例,其在連接時(shí)需要手動(dòng)定義輔助類;定義映射及關(guān)聯(lián)關(guān)系時(shí)所用的標(biāo)識(shí)符過長且不夠明確;操作時(shí)需要手動(dòng)處理異常。這些不足之處引發(fā)了進(jìn)一步開發(fā)更為簡單實(shí)用的新框架的需求,因此本框架應(yīng)運(yùn)而生。本框架的優(yōu)勢(shì)在于:

        (1)彌補(bǔ)不足:本框架可以彌補(bǔ)目前SQLite數(shù)據(jù)庫的第三方框架的各種不足,實(shí)現(xiàn)搭建便捷、功能定位適當(dāng)、操作優(yōu)化的目的。

        (2)填補(bǔ)空白:目前國內(nèi)還沒有公開發(fā)行的類似框架,主要都是公司內(nèi)部的產(chǎn)權(quán)技術(shù),因此本框架在某種程度上可以填補(bǔ)國內(nèi)空白。

        (3)輔助教學(xué):本框架一方面能夠滿足實(shí)際生產(chǎn)中的簡單安卓項(xiàng)目的快速開發(fā),同時(shí)又可以作為課堂教學(xué)的輔助工具,甚至其自身的開發(fā)過程也可以作為教學(xué)內(nèi)容,使學(xué)生能夠快速掌握對(duì)象關(guān)系映射的原理和方法。

        本框架的設(shè)計(jì)理念是精簡和高效,其大致來自桌面平臺(tái)的Hibernate框架,但進(jìn)行了大幅度的優(yōu)化,同時(shí)摒棄了其他類似框架的各種不足之處,給使用者提供了極大的便利。使用者無須編寫任何配置文件,也基本無須派生其他多余的操作類和接口。無論是在搭建數(shù)據(jù)表結(jié)構(gòu)還是在操作實(shí)體時(shí),使用者都只需使用框架中已經(jīng)實(shí)現(xiàn)的各種操作方法,無須二次開發(fā)。

        圖1

        本框架核心組件包含連接和初始化(OpenHelper)、實(shí)體模板(Entity)、實(shí)體標(biāo)注(annotations)、實(shí)體操作(Dao)和輔助工具(utils)。這些核心組件建立在安卓SQLite數(shù)據(jù)庫的操作接口之上,并為安卓APP的開發(fā)提供支持。

        在這些核心組件中,OpenHelper可以進(jìn)行數(shù)據(jù)庫的初始化連接,進(jìn)而根據(jù)已定義的實(shí)體及其關(guān)聯(lián)關(guān)系,自動(dòng)生成數(shù)據(jù)表及其字段,也可以對(duì)數(shù)據(jù)庫進(jìn)行備份和重建;而Entity則是用來定義上述實(shí)體的模板,封裝了包含實(shí)體標(biāo)識(shí)(ID)在內(nèi)的各個(gè)字段的Java Bean操作,這些字段可通過annotation進(jìn)行標(biāo)注,如標(biāo)注為表、列、多對(duì)一關(guān)聯(lián)、多對(duì)多關(guān)聯(lián)等;在這之后,可以使用Dao進(jìn)行各種實(shí)體操作,如添加、修改、刪除實(shí)體,或以各種指定條件查詢實(shí)體等。在使用上述核心組件時(shí),輔助工具也是不可或缺的。使用本框架的輔助工具可以定義模糊查詢條件、組合查詢條件和聚合函數(shù),可以保存查詢結(jié)果,也可以更加便捷地定義日期和時(shí)間。

        設(shè)計(jì)這些核心組件時(shí)使用了泛型、內(nèi)部類和反射原理,使框架盡可能輕量化,結(jié)構(gòu)盡可能簡化,操作盡可能簡潔。在此基礎(chǔ)上,本框架通過內(nèi)部算法,將使用者的意圖轉(zhuǎn)化為對(duì)應(yīng)的SQL語句,并將語句的執(zhí)行結(jié)果重新封裝為使用者所需的實(shí)體或數(shù)值。

        使用本框架的步驟非常簡單:先定義實(shí)體類,再進(jìn)行數(shù)據(jù)表結(jié)構(gòu)的搭建,最后進(jìn)行實(shí)體操作。

        實(shí)體類只需從實(shí)體模板派生,并對(duì)每個(gè)字段標(biāo)注映射關(guān)系和關(guān)聯(lián)關(guān)系即可;在搭建數(shù)據(jù)表結(jié)構(gòu)時(shí),只需將事先定義好的若干實(shí)體類作為參數(shù),調(diào)用初始化或備份方法即可,而且還可以選擇是否在操作過程中顯示自動(dòng)生成的SQL語句;在實(shí)體操作時(shí),只需調(diào)用簡單的方法即可實(shí)例化操作類,進(jìn)而添加、刪除或更新實(shí)體,以及根據(jù)各種條件查詢實(shí)體、計(jì)算聚合函數(shù)等。

        本框架在安全性方面,也盡可能與可擴(kuò)展性平衡,盡量隱藏?zé)o須使用者擴(kuò)展的資源,使使用方式趨于規(guī)范統(tǒng)一。

        下面以一個(gè)常見的用戶注冊(cè)和登錄功能的案例來說明本框架的使用方法和原理:

        如果采用MVC結(jié)構(gòu),則由service(控制層)實(shí)現(xiàn)用戶注冊(cè)和登錄的功能邏輯,dao(模型層)實(shí)現(xiàn)實(shí)體數(shù)據(jù)的操作。本案例旨在對(duì)比采用和不采用本框架的區(qū)別,從而說明采用本框架將大幅提高開發(fā)效率。

        不使用框架編寫Service實(shí)現(xiàn)類的login方法:

        使用框架編寫后的版本

        由此可見,采用本框架后,類結(jié)構(gòu)和代碼更簡練,條理性更強(qiáng)。

        猜你喜歡
        安卓框架
        iPhone不卡的秘密曝光:安卓也能享受
        框架
        MIPS安卓平臺(tái)上ARM二進(jìn)制翻譯系統(tǒng)
        廣義框架的不相交性
        文物表情包
        WTO框架下
        法大研究生(2017年1期)2017-04-10 08:55:06
        一種基于安卓系統(tǒng)的手機(jī)側(cè)抓包分析方法
        關(guān)于原點(diǎn)對(duì)稱的不規(guī)則Gabor框架的構(gòu)造
        一種基于OpenStack的云應(yīng)用開發(fā)框架
        基于Hadoop的DDoS檢測(cè)框架
        欧美疯狂性xxxxxbbbbb| 中文字幕一区二区三区的| 亚洲av永久无码天堂网小说区| 亚洲色欲色欲www在线播放| 99精品欧美一区二区三区美图| 黄色大片国产精品久久| 精品含羞草免费视频观看| 奇米影视777撸吧| 久久精品免费无码区| 日本久久黄色高清视频| 一区二区三区中文字幕p站| 国产97色在线 | 亚洲| 国产一级黄色录像| 国产精品成年人毛片毛片| 边添小泬边狠狠躁视频| 成人激情五月天| 免费观看久久精品日本视频| 手机在线播放成人av| 日本丰满熟妇videossexhd| 曰本极品少妇videossexhd| jk制服黑色丝袜喷水视频国产| 国产精品又湿又黄九九九久久嫩草 | 国产免费午夜福利蜜芽无码| 亚洲av日韩专区在线观看| 免费人成网站在线观看欧美| 欧美在线视频免费观看| 国产蜜臀精品一区二区三区| 一区二区三区国产免费视频| 国产成人久久精品激情| 精品免费一区二区三区在| 午夜影院免费观看小视频| 18精品久久久无码午夜福利| 亚洲精品成人专区在线观看| av天堂手机在线免费| 亚洲视频在线一区二区| 日本边添边摸边做边爱的网站| 成人精品国产亚洲欧洲| 少妇高潮精品在线观看| 久久精品无码av| 中文亚洲爆乳av无码专区 | 国产片三级视频播放|