db4o是一款優秀的面向對象數據庫,German Viscuso最近在DZone上發表了一篇介紹它的文章,該文能夠視爲是db4o在主要語言和框架中的一次巡演。html
做爲一個關注Groovy的站點,咱們的興趣固然是其中和Groovy相關的部分:「在Giffon框架中使用db4o」。在這一小節,做者向讀者展現了Griffon的db4o插件。java
在Griffon工程中安裝db4o插件後,會產生兩個文件:Db4oConfig.groovy,包含數據源的定義;BootstrapDb4o.groovy,相似Grails中的BootStrap.groovy。同時,對於控制器,會注入一個名爲withDb4o的動態方法,讓你能夠訪問com.db4o.ObjectContainer實例,經過該對象你能夠對數據庫進行操做。android
簡單的例子由3部分組成:shell
class Person { int id String name String lastname }
class BootstrapDb4o { def init = { db4o -> db4o.store(new Person(id: 1, name: "Danno" , lastname: "Ferrin")) db4o.store(new Person(id: 2, name: "Andres" , lastname: "Almiray")) db4o.store(new Person(id: 3, name: "James" , lastname: "Williams")) db4o.store(new Person(id: 4, name: "Guillaume" , lastname: "Laforge")) db4o.store(new Person(id: 5, name: "Jim" , lastname: "Shingler")) db4o.store(new Person(id: 6, name: "Josh" , lastname: "Reed")) db4o.store(new Person(id: 7, name: "Hamlet" , lastname: "D'Arcy")) } def destroy = { db4o -> } }
class SampleController { def model def onStartupEnd = { app -> withDb4o { db4o -> def tmpList = db4o.query(Person) edt { model.personsList.addAll(tmpList) } } } }
雖然Griffon中已經有了db4o插件,但遺憾地是Grails社區如今彷佛並無對應的東西,至少我在Grails官方網站的插件部分沒有搜索到,google的結果也同樣。有人曾表示想集成Grails和db4o,但那也是2008年的往事了。數據庫
此外,在Groovy社區還有另外一個項目:db4o-groovy。該項目提供了:app
至於db4o在其餘語言和框架中的應用,請訪問DZone上的原文。你能夠在其中找到在scala、servlet、android和Spring中使用它的例子。網站