gpt4 book ai didi

java - CouchDB:访问 _design View 或提取文档字段的替代方法是什么?

转载 作者:行者123 更新时间:2023-12-01 14:02:26 25 4
gpt4 key购买 nike

我正在尝试切换基于 SQL 的应用程序以使用 Couchdb 来存储和检索其文档,这些文档基于 _design 文档(例如 _design/VIEW_ALL_DOC)。

文档结构如下:

{
Map<String , String> properties = new HashMap<String,String>();

properties.put(PRICE_LIST_ID, "111000");
properties.put(FILE_NAME, "KOOO");
properties.put(VISIBILITY, "True");
properties.put(DELETION_FLAG, "0");
properties.put(FILE_CONTENT, "Pricelist");
properties.put(VERSION, "1.0");
properties.put(CREATION_DATE, "19-09-13");
properties.put(MODIFICATION_USER, "IKK");
properties.put(MODIFICATION_DATE, "20-09-13");
properties.put(CREATION_USER, "AOK");
properties.put(CUSTOMER_ID, "02227802");
properties.put(ORIGINAL_FILE_NAME, "Original");l
}

我已经创建了工作正常的文档,但问题在于集成和访问现有 Java 应用程序中的 _design 文档。

我使用HttpClient lib来访问_design文档,如下所示:

HttpClient httpclient = new DefaultHttpClient();    
HttpGet VIEW_ALL_DOCS = new HttpGet("http://localhost:5984/pricelistdocs/_design/VIEW_ALL_DOCS/_view/VIEW_ALL_DOCS");
  • 问题是,在集成 Couchdb 时,使用 HttpClient 结构需要对应用程序进行大量更改。除了使用 HttpClient 库之外,还有其他访问 _design/VIEW_ALL_DOC 订单的替代方法吗?

  • CouchDB 文档有 XML Blob 的概念吗?

  • 即使将 HttpClientjava extractor 或类似 XML blob 之类的东西一起使用的任何解决方案也都非常好。

  • 如果可能的话,我的目标是找到一个解决方案,我将使用 java Extrator 来访问和 return extractor.getString(record, mapping.get(index)); Couchdb 文档的字段类似于旧的解决方案。

    ResultSet rs = new ResultSet(response);                                           

    List<TransPriceListPdf> result = new ArrayList<TransPriceListPdf>();
    while (rs.next()) {
    TransPriceListPdf temp = new TransPriceListPdf();

    temp.setPriceListId(rs.getString(1));
    temp.setPdfFileVersion(rs.getInt(2));
    temp.setPdfFileName(rs.getString(3));
    temp.setOriginalFileName(rs.getString(4));
    temp.setVisibility(VISIBILITY.valueof(rs.getString(5)));
    temp.setDeletionFlag(rs.getInt(6) == 0 ? false : true);
    temp.setPdfFileContents(rs.getBlob(7));
    temp.setCreationDate(rs.getDate(8));
    temp.setCreationUser(rs.getString(9));
    temp.setModificationDate(rs.getDate(10));
    temp.setModificationUser(rs.getString(11));

    result.add(temp);
    }

尽管我对 Java 和 CouchDB 还不太熟悉。请任何 Couchdb、Java 或两者的帮助、提示、提示或帮助来解决此问题,我们将不胜感激,数量不菲。感谢您的阅读

最佳答案

我不确定您真正想要在这里实现什么,但我想您希望获取使用您创建的设计文档保存在数据库中的所有文档。如果您已正确创建文档,则可以使用 Java Couch Db 客户端(或 Mapper),例如 lightCouch将结果集转换为 Java 对象,通过该对象可以迭代结果集。它具有相当简单的 API 来与 Couch DB 配合使用,完全抽象了 Couch DB 公开的 HTTP API。

为了最大限度地减少现有 Java 应用程序所需的更改,您可以使用适配器模式,您可能已经知道这一点。

关于java - CouchDB:访问 _design View 或提取文档字段的替代方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19254129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com