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

SQLite 關系映射插件中實體批量刷新和覆蓋的原理分析

2022-06-23 01:08:46施一飛王明珠
無線互聯科技 2022年7期
關鍵詞:數據庫用戶功能

王 巖,施一飛,王明珠

(吉利學院,四川 成都 641423)

0 引言

在安卓系統中,其采用的是一款輕量化數據庫SQLite,編程時如果單純使用SQLite 原生的操作語句編寫,那么在效率和容錯方面會表現一般,如可以開發一款映射插件來服務和SQLite 數據庫的溝通,就會在一定程度上提升編寫程序的效率。經過對國內多個安卓程序產品項目的調研,發現安卓映射插件在應用中均有著不同的程度,當該程序對于后端的溝通量不是很大時,可能就沒有必要安裝相關映射插件,當然絕大多數的程序比較復雜,還要考慮和PC 平臺及Web 平臺功能的一致性[1],所以大多數都安裝有公開的或者自行研發的映射插件,方便對于數據庫的溝通,達到自身程序運行目的。

安卓系統的開發主要基于Java 語言,以往在使用Java 語言進行各類數據庫的相關操作時,會經常用到諸如Hibernate 或MyBatis 等框架[2]。但對于SQLite 數據庫,并未有類似的框架,并且安卓系統不適合使用較復雜的大型框架,只能使用一些輕量級的框架。如OrmLite 框架等,但目前能支持 SQLite 數據庫的第三方框架,其種類欠豐富,功能欠完善,操作也欠優化[3]。

1 功能介紹

本次開發是在原有的ChopinLite 1.0 的版本上進行功能優化以及完善,之前的版本在添加刪除上不能夠進行批量添加刪除,只能一次一次的進行重復操作,且占用系統內存,浪費大量時間,操作不夠便捷,由此本次開發偏向批量操作等功能,著重開發以下5 個方面,本文就(4)(5)項的原理會加以重點說明。

(1)實體批量增加功能:用戶在添加大量實體時,會浪費很多時間,因此為了節約用戶的時間和提升用戶的工作效率,在以前的基礎上對其進行了優化,實現在數據庫中實體批量添加數據的功能。可以更加高效的操作數據庫中的內容,節約了大量的操作的時間。

(2)實體批量刪除功能:刪除數據的語句非常簡單,但是大量的刪除操作會消耗大部分時間,因此實體批量刪除操作應運而生。該功能在1.0 的基礎上進行優化,實現在數據庫中批量刪除數據的操作。

(3)實體批量修改功能:增刪改作為數據庫的基礎操作,修改用戶數據也是經常用到的功能之一。而修改數據的操作并不像添加和刪除實體那樣簡單,所需要的代碼極其煩瑣。因此在數據庫中實體批量修改就成了2.0 版本的重頭戲。

(4)實體批量覆蓋功能:覆蓋操作是把本地數據上傳到數據庫,與批量刷新操作不同,批量覆蓋是對數據庫已有的實體做更新操作,沒有的做添加操作,以本地數據為準。

(5)實體批量刷新功能:刷新實體同樣是數據庫經常進行的操作。單個實體進行刷新和批量實體刷新有所不同,需要先以數據庫為基準進行判斷,當實體存在于數據庫時,進行選擇操作,當實體并未在數據庫中查詢到時,進行添加操作。

2 重點研究

本次開發的框架摒棄了其他類似框架的不足之處,使用者無須編寫配置文件,僅需使用框架中已經實現的各種操作方法,無須二次開發。該軟件的特性在于以非循環的方式實現增刪改查,更新和覆蓋的批量操作。

2.1 批量添加

在實現單個實體添加的基礎上,運用全新的結構化查詢語言(Tructured Query Language,SQL)語句實現實體批量添加,節約用戶操作時間,提升用戶的工作效率,更高效的操作數據庫的內容,使用 數據訪問對象(Data Access Object,DAO)調用AddBatch 方法,可以批量添加實體。添加實體后,實體會自動獲得身份標識號(Identity Document,ID),成為持久態。

2.2 批量刪除

刪除與批量添加的原理相同,使用獨特的 SQL 語句,實現一次操作,批量刪除的結果。解放用戶繁雜的重復操作的同時減少計算機運行的壓力,節約資源,實現可持續發展。

2.3 批量修改

批量修改功能在一定程度上簡化修改的煩瑣過程,內部程序僅采用一條 SQL 語句,達到批量修改的目的。使用 DAO 對象調用 EditBatch 方法,可以批量修改實體。(1)查詢再修改,FindAll 得到集合。(2)設置需要修改的實體的各類屬性。(3)最后修改集合或集合中的個例。

2.4 批量刷新

刷新實體的方法和其他功能有所不同,主要是調用了其他的方法。

刷新是以反射再賦值的方式實現了實體的批量刷新,主要是通過反射拿取數據庫里的值,賦值回本地。將數據庫與本地數據兩者ID 做對比,若兩者中存在相同ID,則把數據庫中的數據下載到本地。若數據庫中沒有該ID,則將本地數據添加到數據庫中。

使用 DAO 對象調用 AttachAndRefreshBatch 方法,可以更新實體,結果以數據庫為準,使用實例如下:

2.5 批量覆蓋

覆蓋的操作與刷新大同小異,本軟件的覆蓋操作以本地數據為準,將數據上傳到數據庫,與批量刷新操作不同的是,批量覆蓋是對數據庫已有的實體做更新操作,沒有的做添加操作。類似于上傳的原理,通過這樣的方式更新數據庫,使之兩邊數據保持一致。

安卓使用Replace into 語句,輕松實現了預期功能,SQLite 數據庫是通過直接覆蓋的方式進行操作的。批量覆蓋操作就是將數據庫與本地數據兩者ID 做對比,與刷新操作所不同的是:若兩者中存在相同ID,則把數據庫中的數據進行更新操作。若數據庫中沒有該ID,則直接進行添加操作。使用 DAO 對象調用AttachAndOverrideBatch 方法,可以更新實體,結果以數據庫為準,

使用實例如下:

3 結語

安卓平臺相較于其他平臺,安卓具有開放性的優勢,這就意味安卓擁有更多的開發者,更多的用戶和應用。用戶和應用的多樣性會對插件的需求大量增加,可以讓插件得到快速的發展。安卓還是一個開源平臺,可以提供種類繁多的函數庫和有用的工具,減少開發者的工作量,同時還能增加創新性和軟件的交互性。目前安卓平臺的相關實體映射的插件較少,增加了所研究的映射插件的實用性。

在插件設計之初,并沒有考慮到用戶所使用的數據庫的多樣性的問題,只考慮了SQLite 數據庫。但實際上,一款優秀的插件則應該適應眾多的軟件,而不能專用化。所以,在后續的開發中,我們要讓插件的適用范圍更廣,例如在MySQL、Oracle、SQL Server 等數據庫中都可以使用。可以在Java SE 平臺使用Java 數據庫連接(Java Database Connect,JDBC) 工具向其他數據庫進行移植,以此來滿足在多種數據庫中均可進行使用的目的。

綜上所述,本次開發增加了批量操作的多種功能,既節省了時間,又使代碼更加簡練,操作更方便,節約了程序的運行內存,解放了計算機的運行壓力,為后續實體映射軟件的發展指明了新方向。

猜你喜歡
數據庫用戶功能
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
關于非首都功能疏解的幾點思考
數據庫
財經(2017年2期)2017-03-10 14:35:35
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數據庫
財經(2016年15期)2016-06-03 07:38:02
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
主站蜘蛛池模板: 四虎在线观看视频高清无码| 国产日本欧美亚洲精品视| 九色91在线视频| 国产精欧美一区二区三区| 久久国产精品嫖妓| 激情综合图区| 国产区网址| 一级一毛片a级毛片| 青青久在线视频免费观看| 欧美一区精品| 国产福利一区二区在线观看| 国产喷水视频| 国产福利拍拍拍| 亚洲无线国产观看| 亚洲成年人片| 日本国产在线| www.亚洲国产| 久久久久国产一区二区| 91麻豆久久久| 亚洲免费成人网| 久久这里只有精品8| 国产成人免费观看在线视频| 亚洲av综合网| 91综合色区亚洲熟妇p| 国产人前露出系列视频| 日本在线亚洲| 国产精品无码一区二区桃花视频| 国产精品香蕉在线观看不卡| 国产精品99久久久久久董美香| 永久成人无码激情视频免费| 99精品伊人久久久大香线蕉| 人与鲁专区| a天堂视频在线| 在线国产三级| 国产精品久久久久久久久久久久| 鲁鲁鲁爽爽爽在线视频观看| 欧美激情视频一区| 女人18一级毛片免费观看| 成人日韩欧美| 欧美在线精品一区二区三区| 亚洲AⅤ波多系列中文字幕| 亚洲乱伦视频| 免费国产好深啊好涨好硬视频| 熟妇人妻无乱码中文字幕真矢织江 | 好久久免费视频高清| 亚洲日韩图片专区第1页| 在线免费不卡视频| 国产浮力第一页永久地址| 亚洲天堂.com| 免费网站成人亚洲| 54pao国产成人免费视频| 国产成人福利在线| 啪啪永久免费av| 亚洲欧美一区在线| 欧洲精品视频在线观看| 亚洲人成电影在线播放| 青青操视频在线| 中文字幕亚洲精品2页| 欧美在线一二区| 婷婷亚洲最大| 91在线中文| 欧美中文字幕一区| 国产亚洲高清在线精品99| 欧美激情伊人| 国产精品网址你懂的| 国产精品人莉莉成在线播放| 欧美国产综合色视频| 亚洲色图综合在线| 91色在线视频| 青青草原国产av福利网站| 亚洲国产日韩视频观看| 一级不卡毛片| 精品三级在线| 欧美一级一级做性视频| 亚洲欧美成aⅴ人在线观看 | 狂欢视频在线观看不卡| 国产成人高清精品免费| 日韩无码视频网站| 内射人妻无码色AV天堂| 欧美成人第一页| 亚洲AV电影不卡在线观看| 欧美在线网|