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