programing

java를 사용하여 mongoDB에 이미지를 삽입하는 방법은 무엇입니까?

mailnote 2023. 5. 31. 18:24
반응형

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가 처음이시니 다음을 살펴보십시오.

링크 1

링크 2

Mongo+JAVA 튜토리얼

그리드FS 사양

언제든지 SO에 문의할 수 있습니다. 저도 mongoDB를 처음 사용하는 사람이므로 새로 온 사람을 도와도 상관없습니다.d

언급URL : https://stackoverflow.com/questions/4245787/how-to-insert-images-in-mongodb-using-java

반응형