列出使用java存储在cloudant中的所有附件
我正在开发一个演示,我一直在做这个。 我想在java web应用程序中列出所有附件(例如PDF),但a我无法检索并列出它们。 我只能检索公共数据(字符串、整数)。 是否有标准的检索和显示方法? 我一直在看所有的帖子,但似乎什么都不管用 这里是我添加供应商的地方,带有附件: 在这里,我尝试检索数据:列出使用java存储在cloudant中的所有附件,java,ibm-cloud,cloudant,Java,Ibm Cloud,Cloudant,我正在开发一个演示,我一直在做这个。 我想在java web应用程序中列出所有附件(例如PDF),但a我无法检索并列出它们。 我只能检索公共数据(字符串、整数)。 是否有标准的检索和显示方法? 我一直在看所有的帖子,但似乎什么都不管用 这里是我添加供应商的地方,带有附件: 在这里,我尝试检索数据: public List<Vendor> getAllVendors() { List<Vendor> Vendors = new ArrayList&l
public List<Vendor> getAllVendors()
{
List<Vendor> Vendors = new ArrayList<Vendor>();
final List<Vendor> vend2 = new ArrayList<Vendor>();
//Get db
final Database db = getDb();
final InputStream s = null;
//Get all documents
Vendors = db.view("_all_docs").includeDocs(true).query(Vendor.class);
final Database db1 = getDb();
for (final Vendor vend : Vendors) {
final Response r1 = vend.getAttachment();
final int id = Integer.valueOf(vend.get_id()) + 1;
// Here I am look to the attachment with the _ID and _REV
final InputStream in = db1.find(r1.getId(), r1.getRev()); vend.setInput(in); vend2.add(vend);
}
return Vendors;
}
公共列表getAllVendors()
{
列出供应商=新的ArrayList();
最终列表vend2=新的ArrayList();
//获取数据库
最终数据库db=getDb();
最终输入流s=null;
//获取所有文档
Vendors=db.view(“\u all\u docs”).includeDocs(true).query(Vendor.class);
最终数据库db1=getDb();
对于(最终供应商:供应商){
最终响应r1=vend.getAttachment();
final int id=Integer.valueOf(vend.get_id())+1;
//我在这里查看带有_ID和_REV的附件
final InputStream in=db1.find(r1.getId(),r1.getRev());vend.setInput(in);vend2.add(vend);
}
退货供应商;
}
在这最后一段代码中,我打算创建一个包含所有供应商数据和blob的新列表。
当我添加供应商(在第一部分中)时,我将附件的“响应”保存在供应商对象中,因此当我尝试检索时,我有了要处理的数据(_id和_rev) 我假设您希望列出包含附件的所有文档。如果是这样,您可以类似于此:
function(doc) {
if (doc._attachments) {
emit(doc._id, null);
}
}
然后,您可以使用类似以下内容调用视图,以获取包含附件的文档的文档ID列表:
GET /dbname/_design/designdocname/_view/docswithattachments
上面的GET请求在Java中看起来像这样:
List<Foo> list = db.view("designdocname/docswithattachments")
.query(Foo.class);
List List=db.view(“设计文档名/docswithattachments”)
.query(Foo.class);
我假设您希望列出包含附件的所有文档。如果是这样,您可以类似于此:
function(doc) {
if (doc._attachments) {
emit(doc._id, null);
}
}
然后,您可以使用类似以下内容调用视图,以获取包含附件的文档的文档ID列表:
GET /dbname/_design/designdocname/_view/docswithattachments
上面的GET请求在Java中看起来像这样:
List<Foo> list = db.view("designdocname/docswithattachments")
.query(Foo.class);
List List=db.view(“设计文档名/docswithattachments”)
.query(Foo.class);
请发布一些代码来说明您是如何尝试这样做的。@我刚刚发布了部分DAO实现代码。我当然知道这不是最好的持久化方法,但经过一周的尝试,它就是这样的:请发布一些代码来说明您是如何尝试做到这一点的。@AndyTurner我刚刚发布了部分DAO实现代码。我知道这肯定不是最好的持久化方法,但经过一周的尝试,它是什么:DHi Chris,我在cloudant帮助中看到了这条说明,但我不知道如何创建方法。我的意思是,获取或放置我必须导入的库?您是否能够按照上面的示例向cloudant数据库添加MapReduce视图?我还为HTTPGET示例提供了一个java代码段。谢谢Chris,这是正确的方法。大家好,Chris,我在cloudant帮助中看到了这条说明,但我不知道如何创建方法。我的意思是,获取或放置我必须导入的库?您是否能够按照上面的示例向cloudant数据库添加MapReduce视图?我还为HTTPGET示例提供了一个java代码段。谢谢Chris,这是正确的方法。我会在这上面多挖一点。