文章關鍵字:Java 嵌入式開發 DB data 通訊錄 address book 文本數據庫 微型 記錄 數據
下載地址(這些小程序依例丟在code.google上):http://code.google.com/p/greenvm/downloads/list
LMini是Loonframework分支項目之一,它是一個僅有55KB的純Java嵌入式文本數據庫,不支持SQL語句,完全以面向對象方式進行數據操作,在Loonframework主包中主要負責實現緩存數據的硬盤持久化功能。但作為項目分支,LMini并非必須與Loonframework主包集成,也允許作為單獨的微型數據庫存在。
LMini的開發目的在于提供一種簡單快捷的本地數據持久化方式,如游戲記錄、文件緩存、簡單的增、刪、改、查操作都可以通過LMini得以實現,它的優勢在于完全脫離java.sql包依賴,比db4o、sqllite體積更小,比Properties所提供的功能等多。
LMini通過MDB接口進行數據庫操作,而根據MDB接口所獲得的不同實例,操作模式又可分為如下三種,即:內存模式、單一文件模式及多文件模式。
內存模式:
實例化此模式后,將直接在內存開辟一塊區域進行數據庫模擬操作,當程序關閉時內存數據庫也隨之消失,不能持久化保存,調用方法為Engine.getMEMDB。
單一文件模式:
實例化此模式后,數據庫將以文件形式存在,程序會自動產生唯一的物理文件于硬盤之上,所有操作也將基于此物理文件進行,只要此文件不被刪除數據將永久存在,調用方法為Engine.getMDBOnly。
多文件模式:
實例化此模式后,數據庫將以文件夾形式存在,程序會自動根據創建的表格產生多個物理文件于此文件夾中,所有操作將基于此文件夾進行,只要此文件夾及其中文件不被破壞,數據將永久存在,調用方法為Engine.getMDBMany。
以上三種模式皆為接口實現,操作方法完全一致,僅在保存方式上有所分別。
基本操作方式:
1、數據庫的創建與打開:
當我們對MDB接口進行實例化,并調用begin方法后,LMini會自動監測指定位置是否已有文本數據庫存在,有則加載其文件內容,沒有將自動創建一個空數據庫于指定位置。
LMini以一個begin方法打開數據庫連接,以end方法關閉連接,具體代碼如下:
2、密碼保護功能:
除內存模式之外,LMini提供了簡單的密碼保護功能,以防止數據庫文件被他人盜用,只要在begin創建數據庫時設定即可,密碼錯誤時再次打開此文件將提示異常,具體代碼如下:
3、增、刪、改、查:
LMini以openTable方法打開或創建一個指定表格,但區別于其它數據庫,Lmini每個表格僅允許保存一種數據類型,以簡化LMini文件處理過程;目前其支持的類型為Long,Integer,String,Byte[],Object五種,我們可以通過Lmini提供的TypeBase類注入需要的類型。不填寫情況Lmini將默認表格存儲類型為Object,也就是所有經過序列化的對象都可以存儲于本地硬盤之上。
LMini針對CRUD提供了相對應的insert、select、update、delete方法以供調用,只要注入相關對象即可完成操作,具體代碼如下:
4、表格中數據的遍歷:
LMini提供了getTableKey方法以獲得當前表格下所有字段名,提供了getTableList方法以獲得當前表格下所有字段及數據,具體代碼如下:
程序示例:
本例提供了一個Lmini操作通訊錄的簡單操作示例,利用開源metawidget項目所提供的addressbook-swing加以改造而成,僅替換其直接硬編碼在Table中數據為真實操作Lmini數據庫并修正部分英文窗體為中文,metawidget項目所有權利均與本人無關,本示例僅為借用其界面,特此聲明。(PS:源碼在jar中,另外使用metawidget的UI還挺費空間,要用5MB的支持庫|||……)
LMini的操作方式非常簡便,筆者昨天預告的TLOH項目的游戲存檔器也將采用LMini加以實現,目前LMini還在不斷完善中,希望各位看客能給予支持及指正,另外現在發的LMini比Loonframework主包中的版本差一次更新,具體差別到發布Loonframework-0.2.0時就能看到了。
下載地址(這些小程序依例丟在code.google上):http://code.google.com/p/greenvm/downloads/list
浙公網安備 33010602011771號