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中使用它的例子。网站