最近几天一直再看这个mongoDB,按照Master的说法是先看看,后期会用这个做数据库。所以这几天完成从未接触到会用springdata 来操作mongodb数据库。后面如果在项目完成后或许会有更深的理解,到时会再更新总结。
实际网上的入门的百度一下很多了,但是很多资料已经过时了,在按照原来的做法就行不通,而剩下的大都缺少类,不是很系统全面。这里才感觉有必要来总结出自己的一套学习流程来,供大家参考。
1.mongodb的个人学习流程。
先去菜鸟教程上先按照说明安装好服务端和客户端(这俩在一块,和tomcat,redis很类似,服务端,客户端程序都是在bin目录中),后学习了前面的mongodb的sql语法,除了后面的分片,备份和监控,感觉开发也用不到就没看,直接跳过看最后的Mongodb java.
然后熟悉完就看spring data 整合mongodb,这部分是边做边学的,即按照博客上的步骤比葫芦画瓢完成,当然过程不是很顺利,因为资料确实不完整,试了好几次才搞定。
2.学习参考资料
mongodb的安装和入门级系统学习:菜鸟教程。下载安装在下图的箭头章节处。
解压下载的压缩包,就是下面的样子:
运行时有几个要知道:
1.mongod.exe 是服务端应用。mongo.exe是客户端应用。
2.一旦运行成功mongod.exe,即使你关了这个命令窗口,并不会退出这个服务,这个服务成了system系统程序,你只要开机,服务就会自动开启。
如果想用客户端图形界面来直观感受,可以到这里下载。点击download,我们选择exe这个安装就行了。
然后是初级进阶springdata 整合mongodb,这个可以看我这篇下面的介绍自己运行一遍就可以了解个差不多。我们知道spring,spring mvc,springboot,这有来个spring data,这些叫法怎么来的,有为啥这样叫?下面我们来说道说道。
3. spring XX 的由来
个人理解:所有的这些spring XX都是spring提供针对不同方向起的,比如spring mvc针对web层。spring则针对后台业务管理对象,注入等问题的解决。spring data则是针对持久层的spring子项目,目的在于简化数据库操作,减少数据访问层 (DAO) 的开发量。spring cloud针对微服务的。他们并没有严格上的分割线,而主要区别点就是从核心jar包来区分命名或许也是一种可能性。但是持久层由于面对的数据库的不同,也产生了不同的springdata子项目。通过下面这张图来了解一下大致分成了多少种。
今天我们的mongodb就是非关系型的集成文档数据库。
4.spring data整合mongodb
这里我用的是maven工程,引入依赖方便。实验项目整体结构如下:
4.1 引入springdata 整合mongodb依赖和测试依赖 –pom.xml。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.gaofei</groupId>
<artifactId>MongoDemo</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>MongoDemo Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<!-- spring 整合junit需要的两个依赖 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.3.10.RELEASE</version>
<scope>test</scope>
</dependency>
<!-- spring 整合junit需要的两个依赖 -->
<!-- mongodb数据库驱动 -->
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver</artifactId>
<version>3.4.3</version>
</dependency>
<!-- mongodb数据库驱动 -->
<!-- springdata整合mongodb -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>1.10.6.RELEASE</version>