999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一款安卓SQLite數據庫對象關系映射框架的開發

2019-11-13 01:33:45王巖施一飛
科技視界 2019年30期

王巖 施一飛

【摘 要】安卓操作系統內嵌的SQLite數據庫適用于在移動設備保存少量的數據,但目前業界一直缺少適合SQLite數據庫的映射框架,能公開源代碼的則更為罕見。本文就開發效率提升和容錯問題等方面,描述了一款SQLite對象關系映射框架的設計實現思路。并以實際案例,對比使用前后的效率提升結果。

【關鍵詞】對象關系映射;SQLite;框架;安卓

中圖分類號: TP277 文獻標識碼: A文章編號: 2095-2457(2019)30-0051-002

DOI:10.19694/j.cnki.issn2095-2457.2019.30.024

了解安卓系統的人都知道,SQLite是一款開源的輕量級關系型數據庫,安卓系統原生內建了SQLite的實現,以文件存儲的方式在移動設備中存儲數據。而現在針對SQLite數據庫的對象關系映射,開發了一款新的框架,解決了SQLite在編程時的效率和容錯問題,它的名稱是ChopinLite。這款框架既可作為安卓系統開發的實用工具,也可作為本科或高職專業移動開發課程的內容。

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

(1)彌補不足:本框架可以彌補目前SQLite數據庫的第三方框架的各種不足,實現搭建便捷、功能定位適當、操作優化的目的。

(2)填補空白:目前國內還沒有公開發行的類似框架,主要都是公司內部的產權技術,因此本框架在某種程度上可以填補國內空白。

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

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

圖1

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

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

設計這些核心組件時使用了泛型、內部類和反射原理,使框架盡可能輕量化,結構盡可能簡化,操作盡可能簡潔。在此基礎上,本框架通過內部算法,將使用者的意圖轉化為對應的SQL語句,并將語句的執行結果重新封裝為使用者所需的實體或數值。

使用本框架的步驟非常簡單:先定義實體類,再進行數據表結構的搭建,最后進行實體操作。

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

本框架在安全性方面,也盡可能與可擴展性平衡,盡量隱藏無須使用者擴展的資源,使使用方式趨于規范統一。

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

如果采用MVC結構,則由service(控制層)實現用戶注冊和登錄的功能邏輯,dao(模型層)實現實體數據的操作。本案例旨在對比采用和不采用本框架的區別,從而說明采用本框架將大幅提高開發效率。

不使用框架編寫Service實現類的login方法:

使用框架編寫后的版本

由此可見,采用本框架后,類結構和代碼更簡練,條理性更強。

主站蜘蛛池模板: 91在线一9|永久视频在线| 高清久久精品亚洲日韩Av| 亚洲第一天堂无码专区| 91亚洲精选| 在线免费观看AV| 欧美日韩国产在线人成app| 国产美女91呻吟求| 999国内精品视频免费| 亚洲欧美日本国产专区一区| 91成人在线免费视频| 中文无码毛片又爽又刺激| 国产欧美日韩一区二区视频在线| 亚洲色图另类| 综合久久五月天| 在线免费a视频| 国产一区二区丝袜高跟鞋| 亚洲av日韩综合一区尤物| 久久综合婷婷| 欧美第一页在线| www.91中文字幕| 澳门av无码| 永久免费av网站可以直接看的 | 欧美综合成人| 成年网址网站在线观看| 亚洲AV无码精品无码久久蜜桃| 中文字幕亚洲专区第19页| 国产极品美女在线播放| 91欧美亚洲国产五月天| 欧美一级在线播放| www.99精品视频在线播放| 91精品专区| 欧美三级日韩三级| 91福利一区二区三区| 国产精品蜜芽在线观看| 精品人妻一区无码视频| 91原创视频在线| 亚洲综合一区国产精品| 全部免费毛片免费播放| 欧美成人手机在线观看网址| 色综合中文综合网| 熟女视频91| 成人免费午间影院在线观看| 亚洲成综合人影院在院播放| 国产午夜福利片在线观看| 免费国产一级 片内射老| 午夜人性色福利无码视频在线观看| 免费国产一级 片内射老| 国产成人午夜福利免费无码r| 天天综合网亚洲网站| 亚洲二区视频| 夜夜操天天摸| 91久久精品国产| 最新无码专区超级碰碰碰| 国产成人区在线观看视频| 韩日午夜在线资源一区二区| 亚洲精品亚洲人成在线| 欧美高清日韩| 黄片一区二区三区| 亚洲色成人www在线观看| 亚洲无线一二三四区男男| 亚洲综合香蕉| 久久亚洲精少妇毛片午夜无码| 精品久久蜜桃| 亚洲精品手机在线| 国产精品黑色丝袜的老师| 亚洲系列中文字幕一区二区| 91视频区| 久久国产乱子伦视频无卡顿| 欧美高清国产| 91po国产在线精品免费观看| 欧美亚洲中文精品三区| 亚洲中字无码AV电影在线观看| 一级香蕉视频在线观看| 国产亚洲精品自在线| 欧美色视频网站| 91小视频在线| 国产在线专区| 久久美女精品国产精品亚洲| 在线视频97| 亚洲无线国产观看| 欧美日韩一区二区在线播放| 国产18在线播放|