java를 사용하여 mongoDB에 이미지를 삽입하는 방법은 무엇입니까?
이미지 문서를 MongoDB에 저장하고 싶습니다.저는 자바를 사용하고 있습니다.
어떠한 링크나 제안도 감사하겠습니다.
이미지와 같은 이진 데이터를 저장하는 경우 GridFS를 사용하거나 자체 인식을 구현할 수 있습니다. 드라이버를 다운로드하여 확인하십시오.src/test/com/mongodb/gridfs/GridFSTest.java
;)
편집: 당신은 오늘 운이 좋습니다!당신을 위해 완전한 코드를 만들었습니다;) 맛있게 드세요!
package mongodb.testing.java;
import com.mongodb.*;
import com.mongodb.gridfs.*;
import java.io.*;
public class Main {
public static byte[] LoadImage(String filePath) throws Exception {
File file = new File(filePath);
int size = (int)file.length();
byte[] buffer = new byte[size];
FileInputStream in = new FileInputStream(file);
in.read(buffer);
in.close();
return buffer;
}
public static void main(String[] args) throws Exception {
//Load our image
byte[] imageBytes = LoadImage("C:/Temp/bear.bmp");
//Connect to database
Mongo mongo = new Mongo( "127.0.0.1" );
String dbName = "GridFSTestJava";
DB db = mongo.getDB( dbName );
//Create GridFS object
GridFS fs = new GridFS( db );
//Save image into database
GridFSInputFile in = fs.createFile( imageBytes );
in.save();
//Find saved image
GridFSDBFile out = fs.findOne( new BasicDBObject( "_id" , in.getId() ) );
//Save loaded image from database into new image file
FileOutputStream outputImage = new FileOutputStream("C:/Temp/bearCopy.bmp");
out.writeTo( outputImage );
outputImage.close();
}
}
작은(1MB 미만) 이미지의 경우 이진 필드(자바의 바이트[])에 저장하는 것이 좋습니다. 파일이 크면 GridFS가 더 잘 작동합니다.
간단한 이진 필드를 사용하여 문서에 많은 미리 보기를 직접 저장합니다.
저는 POJO를 저장하기 위해 Morphia(http://code.google.com/p/morphia) 를 사용합니다.
음, AFAIK, mongodb에 이미지를 저장할 수 없습니다. 이미지에 대한 링크를 저장할 수 있습니다.만약 이미지가 100x100px와 같이 작다면, 이미지를 바이너리에 저장하고, 이미지를 즉시 리폼하고 이미지를 만들 수 있습니다.그러나 이미지를 렌더링하는 데 시간이 좀 걸리므로 링크를 저장하고 해당 이미지를 가져와 동적으로 채우는 것이 좋습니다.
GridFS를 사용하여 더 큰 이진 개체를 저장할 수 있습니다.
mongoDB가 처음이시니 다음을 살펴보십시오.
언제든지 SO에 문의할 수 있습니다. 저도 mongoDB를 처음 사용하는 사람이므로 새로 온 사람을 도와도 상관없습니다.d
언급URL : https://stackoverflow.com/questions/4245787/how-to-insert-images-in-mongodb-using-java
'programing' 카테고리의 다른 글
날짜와 시간이 아닌 시간만 저장하는 방법은 무엇입니까? (0) | 2023.06.10 |
---|---|
기본적으로 Visual Studio를 관리자로 실행하려면 어떻게 해야 합니까? (0) | 2023.05.31 |
Angular 2의 패시브 링크 - 등가 (0) | 2023.05.31 |
해시에 새 항목을 추가하는 방법 (0) | 2023.05.31 |
Esc 키를 누를 때 Excel 매크로 실행 중지 (0) | 2023.05.31 |