前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >spring-data-mongodb之MongoTemplate 添加数据

spring-data-mongodb之MongoTemplate 添加数据

作者头像
猿天地
发布2018-04-03 12:20:26
2K0
发布2018-04-03 12:20:26
举报
文章被收录于专栏:猿天地猿天地

来源:猿天地

链接:http://cxytiandi.com/blog/detail/1733

今天我们来学习下MongoTemplate的添加数据操作,大神请忽略。。。

首先创建一个实体类,我们这边用文章来做实体类,定义如下字段

注意实体类要创建在之前配置转换目录的包下面,上篇文章的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方法
}

实体类中的注解解释如下:

  • Document注解标识这是一个文档,等同mysql中的表,collection值表示mongodb中集合的名称,不写默认为实体类名article。
  • Id注解为主键标识
  • 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看数据保存了没

源码地址:查看原文进行源码下载

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-08-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 猿天地 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档