如何使用Java在mongoDB中插入图像?

我想将图像文件存储在mongoDB中。
我正在使用java。

任何链接或build议,将不胜感激。

为了存储像图像这样的二进制数据,你可以使用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)图像,我build议将它们存储在二进制字段(在Java中字节[]); 如果你有更大的文件,GridFS会更好。

我使用简单的二进制字段直接在文档中存储大量缩略图。

我使用Morphia(http://code.google.com/p/morphia)来存储我的POJO。;

那么,AFAIK,你不能存储在MongoDB的图像 ,你可以存储链接到图像。 而我说的不高,如果图像很小,像100×100像素,U可以尝试存储图像的二进制,并改造和形象上飞。 但是,渲染图片需要一些时间,因此我build议您保存链接,然后抓取该图片并dynamic填充。

您可以使用GridFS来存储较大的二进制对象。

由于您是mongoDB的新手,请查看:

链接1

链接2

Mongo + JAVA教程

GridFS规范

你也可以一直问这个,我也是mongoDB的新手,不会介意帮助新手:D