日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

敏捷开发之利刃—db4o

發布時間:2023/12/14 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 敏捷开发之利刃—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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。