WEB开发网
开发学院软件开发Java Java 开发 2.0: NoSQL 阅读

Java 开发 2.0: NoSQL

 2010-07-20 00:00:00 来源:WEB开发网   
核心提示: 清单 1. 使用 Entity 的对象持久存储defticket=newEntity("ticket")ticket.officer=params.officerticket.license=params.plateticket.issuseDate=offensedatet

清单 1. 使用 Entity 的对象持久存储

 def ticket = new Entity("ticket") 
 ticket.officer = params.officer 
 ticket.license = params.plate 
 ticket.issuseDate = offensedate 
 ticket.location = params.location 
 ticket.notes = params.notes 
 ticket.offense = params.offense 

通过对象设计

倾向于对象模型而不是数据库的设计的模式在 Grails 和 Ruby on Rails 这样的现代 Web 应用程序框架中展现出来,这些现代 Web 应用程序框架强调对象模型的设计,并为您处理底层数据库架构创建。

这种对象持久存储方法很有效,但容易看出,如果您频繁使用票据实体 —例如,如果您正在各种 servlet 中创建(或查找)它们,那么这种方法将变得令人厌烦。使用一个公共 servlet(或 Groovlet)来为您处理这些任务将消除其中一些负担。一种更自然的选择 —我将稍后展示 —将是建模一个 Ticket对象。

返回比赛

我不会重复 Gaelyk 简介中的那个票据示例,相反,为保持新鲜感,我将在本文中使用一个赛跑主题,并构建一个应用程序来展示即将讨论的技术。

如图 1 中的 “多对多” 图表所示,一个 Race拥有多个 Runner,一个 Runner可以属于多个 Race。

图 1. 比赛和参赛者
Java 开发 2.0: NoSQL

如果我要使用一个关系表结构来设计这个关系,至少需要 3 个表:第 3 表将是链接一个 “多对多” 关系的联接表。所幸我不必局限于关系数据模型。相反,我将使用 Gaelyk(和 Groovy 代码)将这个 “多对多” 关系映射到 Google 针对 Google App Engine 的 Bigtable 抽象。事实上,Gaelyk 允许将 Entity当作 Map,这使得映射过程相当简单。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:Java 开发 NoSQL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接