Spring与MongoDB的结合(MongoTemplate)

对于现在大数据即将到来的时代,noSql的所占的比重越来越多,noSql的使用率也逐渐在上升,前面几篇博文谢了关于SpringJPA的持久化以及SpringData-jpa的实现,这篇与下篇将会介绍Spring与MongoDB的持久化以及SpringData-Mongo

这里主要介绍的是Spring与MongoDB的持久化实现,使用了Spring的MongoTemplate

第一步:导入jar包下面是我所导入的jar包,还是要特别注意springdata jars的两个jar包的版本,不然很容易冲突

Spring与MongoDB的结合(MongoTemplate)_第1张图片

第二步:配置config文件,@EnableMongoRepositories是关于SpringData的实现,这里可以不要,在下篇博文会介绍;@ComponentScan就是我们熟悉的注解扫描,这里配置的主要是扫dao里面的@Repository注解;MongoClientFactoryBean类似于以前关系型数据库的dataSource,主要是配置一些连接信息;mongoTemplate就是主要是操作MongoDB数据库,里面的"test"就是集合(类似关系型数据库的表)名

Spring与MongoDB的结合(MongoTemplate)_第2张图片

第三步:配置pojo类,文件数据库也类似于关系数据库,它也有主键,但它在配置“关系”时比较简单,所以拿其处理带关系的数据时,会很麻烦(数据库那里简单了那很多地方就要我们代码控制了)

这里大家不要疑惑为啥我的Subject类什么注解都没配,跟JPA或者Hibernate不太一样,请仔细看Student类里面的subjectList上面的注释,下面我也会画一张图帮助理解

Student类

Spring与MongoDB的结合(MongoTemplate)_第3张图片

Subject类

Spring与MongoDB的结合(MongoTemplate)_第4张图片

一个文档可以查询其他文档里面的记录,并且把那些文档内嵌入自己当前文档中,所以如果我们不想以Subject结合作为主查询的话,甚至可以不用在Subject里面写注解,也就是数据库里面没有Subject集合,有的只是Student集合里面的一个个Subject子集合

Spring与MongoDB的结合(MongoTemplate)_第5张图片

第四步:配置MongoTemplate,这里面没有什么难点了,跟配置JPA的基本相同,这里解释一下MongoOperations是个接口,MongoTemplate是它的实现类,这里的Demo太简单了,我再附上另一个项目里面的稍微复杂一点的查询

Spring与MongoDB的结合(MongoTemplate)_第6张图片

这是稍微复杂一点的查询,报错请忽略掉,主要看里面方法的实现

Spring与MongoDB的结合(MongoTemplate)_第7张图片

第五步:测试,测试用的是Spring-test,由于第四步第二张图片是另一个项目的,只是作为拓展,所以这里只测试了第一张图片的方法

Spring与MongoDB的结合(MongoTemplate)_第8张图片

 

 

 

 

你可能感兴趣的:(Java)