敏捷开发之利刃—db4o
當你想要快速的開發系統原型,用于演示功能、探索需求、消除風險時,用db4o吧;
當你的程序的數據量不算特別大,而又想最快的提高開發速度時,用db4o吧;
當你不想在程序的可配置信息的存儲、解析上花費時間時,用db4o吧;
當你不懂sql也不想學sql時,用db4o吧。
Db4o是對象數據庫,有java和.net兩個分支。這里沒有sql,沒有表,一切都是原生對象。官方網站對Db4o的描述是:
?完全原生于Java和.NET
?100% 面向對象, 拋開對象-關系映射
?為嵌入式應用優化
?開源,可以基于GPL協議免費使用
Db4o的使用十分簡單,以本地數據庫為例子:
(1)打開數據庫
IObjectContainer ObjectContainer = Db4oFactory.OpenFile("data.yap");
這句話打開本地數據庫data.yap,如果該文件不在,則自動創建數據庫文件。
(2)關閉數據庫
ObjectContainer.Close();
(3)查詢對象
IList<YourClass> rlist = ObjectContainer.Query< YourClass >();
這句話查詢數據庫中全部的YourClass對象。
Db4o提供了多種對象查詢方式,詳情可見官方文檔。
(4)Activate對象
默認從數據庫提取的對象只有一定的深度,更深的被引用的對象為null,為了提取更深的對象,需要Activate已提取的對象:
ObjectContainer.Activate(YourObject, depth)
(4)儲存/更新對象
ObjectContainer.Store(YourObject)
如果YourObject不是從數據庫中通過查詢獲得的實例,則將YourObject及它所持有的對象,及持有的持有的……所有可達對象全部儲存入數據庫。
如果 YourObject是從數據庫通過查詢獲得的實例,則更新YourObject的屬性。默認不進行級聯更新,你也可以設置級聯更新,如:
?Db4objects.Db4o.Db4oFactory.Configure().ObjectClass(typeof(YourClass)).CascadeOnUpdate(true);
(5)刪除對象
ObjectContainer.Delete(YourObject)
以上是最基本的操作,很快很敏捷。更多的操作可見官方文檔。
我現在用最懶惰的方法在用db4o:設置一個Root Object,其它Objects都掛接在Root Object之下,程序啟動時就從數據庫中把第一個Root實例提取出來,把要用的對象都Activate出來,數據變動時就Store(ObjectChanged)一下子。
Db4o官方網站:http://www.db4o.com/
面向 Java 開發人員的 db4o 指南: http://www.ibm.com/developerworks/cn/java/jdb4o/
JackyXu 的博客有數篇關于db4o的筆記:http://www.cnblogs.com/JackyXu/
db4o 中的數據庫重構: http://www.ibm.com/developerworks/cn/java/j-db4o3.html
轉載于:https://www.cnblogs.com/xiaotie/archive/2008/10/17/1313218.html
總結
以上是生活随笔為你收集整理的敏捷开发之利刃—db4o的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【原创】无线路由器作为信号放大器设置方法
- 下一篇: JAVA三角形边长定义_Java编译:定