spring-data-mongodb之MongoTemplate 新增資料
阿新 • • 發佈:2018-12-25
首先建立一個實體類,我們這邊用文章來做實體類,定義如下欄位:
注意實體類要建在之前配置轉換目錄的包下面,上篇文章applicationContent.xml裡的配置,
base-package路徑對了框架才會將實體類與mongodb中的集合對應起來。
<!-- 自動掃描以下包的有Doucment註解的類 -->
<mongo:mapping-converter id="mappingConverter" base-package="com.cxytiandi.mongo.document"
type-mapper-ref="defaultMongoTypeMapper"> </mongo:mapping-converter>
import java.util.Date;
import java.util.List;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;
/**
* 文章資訊
* @author yinjihuan
*
*/
@Document(collection = "article_info" )
public class Article {
@Id
private String id;
@Field("title")
private String title;
@Field("url")
private String url;
@Field("author")
private String author;
@Field("tags")
private List<String> tags;
@Field("visit_count")
private Long visitCount;
@Field ("add_time")
private Date addTime;
//省略get set方法
}
實體類中的註解解釋如下:
1.Document註解標識這是一個文件,等同mysql中的表,collection值表示mongodb中集合的名稱,不寫預設為實體類名article。
2.Id註解為主鍵標識
3.Field註解為欄位標識,指定值為欄位名稱,這邊有個小技巧,之所有spring-data.mongodb中有這樣的註解,是為了能夠讓使用者自定義欄位名稱,可以和實體類不一致,還有個好處就是可以用縮寫,比如username我們可以配置成unane或者un,這樣的好處是節省了儲存空間,mongodb的儲存方式是key value形式的,每個key就會重複儲存,key其實就佔了很大一份儲存空間。
接下來可以操作資料庫了,接著上次,在測試類裡寫程式碼
/**
* 初始化文章資訊
* @author yinjihuan
*/
public static void initArticle() {
//迴圈新增
for (int i = 0; i < 10; i++) {
Article article = new Article();
article.setTitle("MongoTemplate的基本使用");
article.setAuthor("yinjihuan");
article.setUrl("http://cxytiandi.com/blog/detail/" + i);
article.setTags(Arrays.asList("java", "mongodb", "spring"));
article.setVisitCount(0L);
article.setAddTime(new Date());
mongoTemplate.save(article);
}
//批量新增
List<Article> articles = new ArrayList<>(10);
for (int i = 0; i < 10; i++) {
Article article = new Article();
article.setTitle("MongoTemplate的基本使用");
article.setAuthor("yinjihuan");
article.setUrl("http://cxytiandi.com/blog/detail/" + i);
article.setTags(Arrays.asList("java", "mongodb", "spring"));
article.setVisitCount(0L);
article.setAddTime(new Date());
articles.add(article);
}
mongoTemplate.insert(articles, Article.class);
}
在資料量大的情況下批量新增效能會更好哦。
執行程式碼我們進入mongodb看資料儲存了沒