欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Android與db4o的完美結(jié)合-Password Manager

系統(tǒng) 1916 0

db4o 轉(zhuǎn)載 - 瘋狂 --專注java,開源,架構(gòu),項(xiàng)目管理 - BlogJava

Android與db4o的完美結(jié)合-Password Manager

項(xiàng)目簡介

這里提供的 Password Manager項(xiàng)目 是Steven Osborn編寫的 PasswordSafe (在Apache License下發(fā)行)的改寫版,目前已經(jīng)實(shí)現(xiàn)了在 Android 平臺下的基本密碼管理功能。項(xiàng)目源代碼中使用db4o代替了SQLite,這樣不但使持久化處理更為直觀,而且使開發(fā)過程更快速、整個應(yīng)用更加高效。

在這個項(xiàng)目中,你可以獲得以下資源:

????* db4o與SQLite之間在基本持久化操作上的比較
????* 完整的Android示例應(yīng)用代碼
????* 應(yīng)用運(yùn)行時的視頻演示

基本功能

本應(yīng)用基本功能是安全地保存網(wǎng)站登錄信息,例如URL、用戶名、密碼,它使用128位AES加密算法。使用者必需提供正確的密碼才能訪問應(yīng)用,而密碼被用于加密/解密應(yīng)用數(shù)據(jù)。

這里提供了采用db4o技術(shù)的Password Manager在Android模擬器下運(yùn)行的在線視頻:
http://www.youtube.com/watch?v=UFSD44AcBwM

如果你下載了源代碼(請見本頁末尾的詳細(xì)說明),那么你會看到原來PasswordSafe中的DBHepler類(實(shí)現(xiàn)SQLite下的持久化)已經(jīng)被替換為Db4oHelper類(實(shí)現(xiàn)db4o的持久化)?,F(xiàn)在,就讓我為你展示db4o和SQLite在持久化處理上的不同之處吧。

SQL初始化開銷

這是你需要在SQLite下初始化密碼管理器SQL代碼(表名、表創(chuàng)建命令等):

而下面是等價(jià)的db4o代碼:

正如你所看到的,在db4o中無需預(yù)定義schema(你可以將db4o對象模式當(dāng)作schema使用,并且 在這種對象模型下進(jìn)行重構(gòu)是非常優(yōu)雅的 ,甚至 在一些簡單的情況下是自動化的 )。

數(shù)據(jù)庫打開和創(chuàng)建機(jī)制

在SQLite中,你需要調(diào)用兩種不同的方法,一種是創(chuàng)建數(shù)據(jù)庫,另一種是打開數(shù)據(jù)庫:

而在db4o中,你只需要調(diào)用openFile(),它將根據(jù)數(shù)據(jù)庫是否存在來創(chuàng)建或者打開數(shù)據(jù)庫:

也許這里的差別看起來無關(guān)緊要,但更簡短的代碼才是更清晰的代碼!

更新和插入數(shù)據(jù)

使用關(guān)系數(shù)據(jù)庫SQLite時,你需要根據(jù)具體情況傳送插入或更新命令(完全正確地構(gòu)造反射數(shù)據(jù)表字段的SQL字符串確并非易事):

這里是等價(jià)的db4o代碼:

你是否發(fā)現(xiàn)了不同?db4o實(shí)際上是一種單行代碼(one-line-of-code)的存儲數(shù)據(jù)庫。db4o自動檢查對象是新的還是已存在的,并根據(jù)對象狀態(tài)進(jìn)行更新或者插入(我們只需要調(diào)用set操作)。值得注意的是,在上面的代碼中我們手工提供了對象的新id,而db4o是可以將其配置為自增字段的。

查詢所有記錄

在SQLite中,我們不得不進(jìn)行人工的對象關(guān)系映射:

而在db4o中,我們完全可以忘掉關(guān)系映射:

請注意:在上面簡短的查詢中,我們通過db4o的 SODA 查詢了全部PassEntry對象,并將結(jié)果按照"id"字段進(jìn)行排序(在上面的SQLite示例中沒有排序)。

它不能再簡單了!

通過字段查詢單一記錄

通過Id查詢記錄的SQLite版本:

下面是db4o版本,它使用了 db4o三種查詢系統(tǒng) 之一------ Exmaple(也稱為QBE) 代替前面的 SODA 進(jìn)行查詢:

可以看出這是多么短小、清晰的代碼啊!

結(jié)論

我希望你已經(jīng)通過以上短小的文檔了解到了db4o的優(yōu)點(diǎn)。你希望在應(yīng)用中將持久化提升到一個新的高度嗎?請現(xiàn)在就 下載db4oJava版本或者.NET版本 吧!它是免費(fèi)的!

相關(guān)資源

????* db4o指南
????* 安裝向?qū)?
????* 開發(fā)者資源

TODO

????* 使用XTEA替換自定義加密算法(XTEA能夠提供數(shù)據(jù)庫級別加密和IO加密,而不是字段級加密)
????* 提供檢索功能(為了按名稱進(jìn)行過濾)

Steve的PasswordSafe項(xiàng)目發(fā)布在Google Code上,那里有更多的TODO:
http://code.google.com/p/android-passwordsafe/issues/

Bugs

????* 在密碼記錄編輯器中嘗試編輯website輸入框中的URL時會發(fā)生錯誤。

源代碼下載

???? Db4oAndroidPswMgr.Zip

Android與db4o的完美結(jié)合-Password Manager


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久精品视频在线观看榴莲视频 | 国产色 | 亚洲一区免费看 | 欧美影院推理片免费看 | tube69欧美最新片 | www.99热.com| 久久思思爱 | 2022最新a精品视频在线观看 | 免费的污污网站 | 91高清国产视频 | 高清国产一区二区三区四区五区 | 午夜精品亚洲 | 欧美的 | 亚洲精品一区二区三区婷婷月色 | 国产欧美综合精品一区二区 | 久久精品一 | 日韩精品一区二区三区 | 国内精品久久久久久99蜜桃 | 十六以下岁女子毛片免费 | 日操 | 一区二区三区视频在线 | 丰满岳妇乱一区二区三区 | 日本精品中文字幕有码 | 日韩午夜影院 | 香港三级日本三级韩国a | 蜜桃黄网 | 久久久久久久久99精品 | 79thz.com| 97日日摸天天碰免费视频 | 欧美一级精品片在线看 | 精品久久久久久久久久 | 99精品欧美一区二区三区 | 午夜伦理影院 | 成人精品一区二区三区校园激情 | 91精品久久久久久久久久入口 | 国产精品视屏 | 久久国产精品99久久久久久牛牛 | av在线看网站| 免费国产精品视频在线 | 日韩日韩日韩日韩 | 黄色刺激视频 |