日期:2014-05-16 浏览次数:20768 次
1、首先使用Eclipse的git插件把spring提供的示例下载下来
?
https://github.com/SpringSource/spring-data-document-examples.git
?
下载之后导入maven工程


?
?
2、首先看我们的domain定义,也就是entity。
org.springframework.data.mongodb.examples.hello.domain.Person
?
?
package org.springframework.data.mongodb.examples.hello.domain;
import java.util.ArrayList;
import java.util.List;
import org.springframework.data.annotation.Id;
import org.springframework.data.document.mongodb.mapping.Document;
@Document
public class Person {
@Id
private String id;
private String name;
private int age;
private List<Account> accounts = new ArrayList<Account>();
public Person() {
}
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public List<Account> getAccounts() {
return accounts;
}
public void addAccount(Account account) {
this.accounts.add(account);
}
public void setAccounts(List<Account> accounts) {
this.accounts = accounts;
}
public String toString() {
return "Person [id=" + id + ", name=" + name + ", age=" + age
+ ", accounts=" + accounts + "]";
}
}
?
dao层的类org.springframework.data.mongodb.examples.hello.HelloMongo
?
?
package org.springframework.data.mongodb.examples.hello;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Random;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.data.mongodb.examples.hello.domain.Account;
import org.springframework.data.mongodb.examples.hello.domain.Person;
import org.springframework.stereotype.Repository;
import com.mongodb.BasicDBObject;
import com.mongodb.BasicDBObjectBuilder;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.gridfs.GridFS;
import com.mongodb.gridfs.GridFSDBFile;
import com.mongodb.gridfs.GridFSInputFile;
/**
*
* @author xiaofancn
*
* 参考 http://static.springsource.org/spring-data/data-document/docs/1.0.0.M2/reference/html/
* 参考 http://nosql.mypopescu.com/post/816470307/tutorial-mongodb-in-java
*
*/
@Repository
public class HelloMongo {
@Autowired
MongoOperations mongoOperations;
public void gridFSInput(String inputFilepath) {
DB db = mongoOperations.getCollection(
mongoOperations.getCollectionName(Person.class)).getDB();
db.requestStart();
File inputFile = new File(inputFilepath);
GridFSInputFile gfsInput;
try {
gfsInput = new GridFS(db, "fs")
.createFile(inputFile);
gfsInput.setFilename("qq123456789logo");// 保存到数据库的文件名为qq123456789logo
gfsInput.save();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
db.requestDone();
}
public void gridFSOutput(String outputFilepath) {
DB db = mongoOperations.getCollection(
mongoOperations.getCollectionName(Person.class)).getDB();
GridFSDBFile gfsFile = new GridFS(db, "fs").findOne("qq123456789logo");// 查找文件名qq123456789logo输出保存
try {
gfsFile.writeTo(outputFilepath);
} catch (IOException e) {
// TODO Auto-generated catch b