首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用Java在MongoDB中存储图像数据的方法

用Java在MongoDB中存储图像数据的方法
EN

Stack Overflow用户
提问于 2017-10-30 17:32:08
回答 2查看 5.1K关注 0票数 0

例如:

我想存储员工的详细信息,比如

代码语言:javascript
复制
private Long id;
private String Name;
private String country;

现在,我还想在MongoDB中存储一个图像和上面的数据。

在我的控制器中,我写了下面的代码

代码语言:javascript
复制
Employee employee2 = new Employee(); 
employee2.setEmpId(1002);
employee2.setEmpName("Dinesh Rajput");
employee2.setCountry("India");

mongoOperations.save(employee2);

员工数据在DB中创建。现在如何将图像与其一起存储。

EN

回答 2

Stack Overflow用户

发布于 2018-02-14 22:46:06

您可以像下面这样添加代码

代码语言:javascript
复制
DBObject metaData = new BasicDBObject();
metaData.put("mobileNo", mobileNo);
metaData.put("FileName", fileName);
metaData.put("createDate", new Date());

it will be saved in db like this

票数 1
EN

Stack Overflow用户

发布于 2018-05-11 11:21:08

假设您正在使用Spring Boot,Spring Data Mongo,那么您应该考虑使用Spring Content for Mongo作为内容存储部分,如下所示:

将以下依赖项添加到pom.xml

代码语言:javascript
复制
<dependency>
    <groupId>com.github.paulcwarren</groupId>
    <artifactId>spring-content-mongo-boot-starter</artifactId>
    <version>0.0.10</version>
</dependency>
<dependency>
    <groupId>com.github.paulcwarren</groupId>
    <artifactId>spring-content-rest-boot-starter</artifactId>
    <version>0.0.10</version>
</dependency>

确保您的应用程序上下文中存在一个GridFsTemplate bean。类似于以下内容:

代码语言:javascript
复制
@Configuration
public class MongoConfig

   @Bean
   public GridFsTemplate gridFsTemplate() throws Exception {
      return new GridFsTemplate(mongoDbFactory(), mappingMongoConverter());
   }
   ...

要允许内容与您的Employee实体相关联,请为其提供以下属性:

代码语言:javascript
复制
@ContentId
private String contentId;

@ContentLength 
private long contentLength = 0L;

@MimeType
private String mimeType = "text/plain";

添加一个store接口:

代码语言:javascript
复制
@StoreRestResource(path="employeeImages")
public interface EmployeeImageStore extends ContentStore<Employee, String> {
}

这就是你所需要的。当您的应用程序启动时,Spring Content将看到Mongo/REST模块上的依赖项,它将为GridF注入EmployeeImageStore存储的实现,以及支持完整CRUD功能的控制器的实现,并将这些操作映射到底层存储接口上。REST端点将在/employeeImages下可用。

curl -X PUT /employeeImages/{employeeId}将创建或更新员工的图像

curl -X GET /employeeImages/{employeeId}将获取该员工的图像

curl -X DELETE /employeeImages/{employeeId}将删除该员工的图像

here有几个入门指南。它们将Spring内容用于文件系统,但这些模块是可互换的。Mongo参考指南是here。还有一个教程视频here

HTH

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47011871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档