保存圖片到Mongodb 下面將講解如何使用Java MongoDB GridFS API去保存圖片等二進(jìn)制文件到Monodb,關(guān)于Java MongoDB GridFS API的詳細(xì)論述,請參考http://www./display/DOCS/GridFS+Specification 1)保存圖片 代碼段如下: String newFileName ="mkyong-java-image"; File imageFile =newFile("c:\\JavaWebHosting.png"); GridFS gfsPhoto =new GridFS(db, "photo"); GridFSInputFile gfsFile = gfsPhoto.createFile(imageFile); gfsFile.setFilename(newFileName); gfsFile.save(); 這里,將c盤下的JavaWebHosting.png保存到mongodb中去,并命名為mkyong-java-image。 2) 讀取圖片信息 代碼段如下 String newFileName ="mkyong-java-image"; GridFS gfsPhoto =new GridFS(db, "photo"); GridFSDBFile imageForOutput = gfsPhoto.findOne(newFileName); System.out.println(imageForOutput); 將會(huì)輸出JSON格式的結(jié)果; { "_id" : { "$oid" : "4dc9511a14a7d017fee35746" } , "chunkSize" : 262144 , "length" : 22672 , "md5" : "1462a6cfa27669af1d8d21c2d7dd1f8b" , "filename" : "mkyong-java-image" , "contentType" : null , "uploadDate" : { "$date" : "2011-05-10T14:52:10Z" } , "aliases" : null } 可以看到,輸出的是文件的屬性相關(guān)信息。 3) 輸出已保存的所有圖片 下面代碼段,輸出所有保存在photo命名空間下的圖片信息: 4) 從數(shù)據(jù)庫中讀取一張圖片并另存 下面的代碼段,從數(shù)據(jù)庫中讀取一張圖片并另存為另外一張圖片到磁盤中 5) 刪除圖片 如何將JSON數(shù)據(jù)格式轉(zhuǎn)化為DBObject格式 在mongodb中,可以使用com.mongodb.util.JSON類,將JSON格式的字符串轉(zhuǎn)變?yōu)镈BObject對象。MongoDB for JAVA驅(qū)動(dòng)中提供了用于向數(shù)據(jù)庫中存儲(chǔ)普通對象的接口DBObject,當(dāng)一個(gè)文檔從MongoDB中取出時(shí),它會(huì)自動(dòng)把文檔轉(zhuǎn)換成DBObject接口類型,要將它實(shí)例化為需要的對象。比如: 這樣的JSON格式字符串,轉(zhuǎn)換方法為: 完整的代碼如下: 則輸出為: 可以看到,將JSON格式的數(shù)據(jù)類型直接轉(zhuǎn)換為mongodb中的文檔類型并輸出。 小結(jié): 本文學(xué)習(xí)了如何使用Mongodb for JAVA驅(qū)動(dòng),對mongodb進(jìn)行日常的數(shù)據(jù)庫操作,比如增加,刪除和修改,下一篇教程中,將指導(dǎo)學(xué)習(xí)Spring對mongodb的操作。 |
|