快速业务通道

Java开发2.0 - 通过CouchDB和Groovy的RESTClient实现REST - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
;1893 Main St","vehicle_plate":"Maryland 4433-OP",      "offense":"Parked in handicap zone without permit",      "date":"2009/01/31"}}]}

您可以根据需要来定制视图的功能。举例来说,只需要少量 JavaScript 字 符串操作,我就可以编写一个查找 Main Street 上开出的罚单的视图,如清单 12 所示:

清单 12. 另一个添加了字符串魔力的视图

function(doc) {   if(doc.location.toLowerCase().indexOf(''main'') > 0){    emit(doc.location, doc);   } }

可以从清单 12 中看出,如果任何文档的 location 元素包含 main,则该文 档将被传递给 emit 函数。记住,这种搜索相当广泛。如果某文档的 location 包含一个 Germaine Street 这样的字符串,则会返回它。对于我所定义的少量 罚单,视图将返回如清单 13 所示的结果:

清单 13. 按 Main Street 过滤的结果

{"total_rows":2,"offset":0,"rows":[   {"id":"123433432asdefasdf4325","key":"4th and Main",    "value":    {"_id":"123433432asdefasdf4325","_rev":"498239926",    "officer":"Chris Smith","location":"4th and Main",     "vehicle_plate":"VA FGA-JD33",     "offense":"Parked in no pa***ng zone","date":"2009/02/01"}},   {"id":"123433432223e432325","key":"54 and Main",    "value":    {"_id":"123433432223e432325","_rev":"841089995",    "officer":"Kristen Ree","location":"54 and Main Street",     "vehicle_plate":"Maryland 77777",     "offense":"Parked in no pa***ng zone","date":"2009/02/02"}}]}

注意,JSON 应答包含一个 key 元素,用于描述为何要生成特定的文档。这 一方面的信息相当有用。还需注意,我所定义的各种罚单中的数据在一致性方面 做的不是很好:一些地点是准确的,但也有一些是不精确的。虽然该数据可以存 储在关系数据库中,但也同样可以使用面向文档的模型。另外,借助 Groovy 和 HTTPBuilder 的高效解析 JSON 的强大能力,可以非常轻松地获取数据(比原始 JDBC 简单很多)。

CouchDB 作为 Web 数据库

CouchDB 的迷人之处在于它的使用非常简单。关系数据库也很简单,但该数据库的优势在于您只需要熟悉 Web 浏览器就可以掌握其 API。此外,由于 CouchDB 提供了 REST 式 API,您可以通过一些炫酷的框架来与其通信,比如说 HTTPBuilder 的 RESTClient。您也不会受制于 HTTPBuilder;各种 Java 库都 在尝试简化 CouchDB 的使用。其中非常有潜力的一个就是 jcouchdb,它可以帮 助您避免 REST 化和 JSON 化,同时允许您以编程方式使用 Java 语言操作文档 和视图。

敬请期待下个月的专栏文章,我将回过头来讨论 Google App Engine。在开 放创新精神的大旗下,各种新框架不断涌现,旨在促进 Google App Engine 的 开发和部署。您将了解它们如何能够简化 Google 云平台上的 Java 开发 2.0 。

本文配套源码

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号