MongoDB 安装与SpringBoot项目整合详细教程
文章目录
MongoDB 安装
- 安装环境 CenOS6.5
- MongoDB 4.0.0
步骤:
1.创建MongoDB 文件夹 mkdir MongoDB
2.进入MongoDB 文件夹 cd MongoDB
3.使用wget命令下载MongoDB : wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.0.tgz
(没有wget命令,先使用yum install wget 安装)
[master@slave1 ~]$ mkdir mongodb [master@slave1 ~]$ cd mongodb/ [master@slave1 mongodb]$ wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.0.tgz
下载完成后,将下载的MongoDB解压,并将解压后的文件夹重命名为 mongodb,命令如下:
[master@slave1 mongodb]$ tar -zxvf mongodb-linux-x86_64-4.0.0.tgz [master@slave1 mongodb]$ mv mongodb-linux-x86_64-4.0.0 mongodbMongoDB 配置
- 进入mongodb目录下,创建两个文件夹db 和 logs,分别用来保存数据和日志,代码如下:
[master@slave1 mongodb]$ cd mongodb [master@slave1 mongodb]$ mkdir db [master@slave1 mongodb]$ mkdir logs
然后,进入bin目录下,创建一个新的MongoDB配置文件 mongo.conf,如下:
- 进入bin目录
[master@slave1 mongodb]$ cd bin/
- 创建 mongo.conf 并配置
[master@slave1 bin]$ vim mongo.conf
内容如下:
dbpath=/home/master/mongodb/mongodb/db logpath=/home/master/mongodb/mongodb/logs/mongodb.log port=27017 fork=true
第一行配置刚才创建的db文件夹路径
第二行配置刚才创建的日志文件路径
第三行启动端口
第四行是否以后台形式运行MongoDB
在bin目录下,运行如下命令启动MongoDB
[master@slave1 bin]$ ./mongod -f mongo.conf --bind_ip_all
进入MongoDB控制台
[master@slave1 bin]$ ./mongo
输入db.version(),显示MongoDB版本时则启动成功。
> db.version() 4.0.0
默认情况下,启动后连接的是MongoDB的test数据库,而关闭MongoDB的命令需要在admin数据库中进行操作,因此在关闭MongoDB前需要切换到admin数据库,再执行,操作如下:
> use admin; > db.shutdownServer();MongoDB 账户设置
默认情况下,启动的MongoDB没有登录密码,为了安全考虑,这里创建一个用户并配置登录密码
用户名为root,密码55555,role表示该用户具有的角色,配置了test数据库的读写权限
> use admin switched to db admin > db.createUser({user:"root",pwd:"55555",roles:[{role:"readWrite",db:"test"}]}) Successfully added user: { "user" : "root", "roles" : [ { "role" : "readWrite", "db" : "test" } ] } >
用户创建成功后,关闭 MongoDB再重新启动 进入控制台,然后切换到admin数据库验证登录,验证成功就可以对test库进行读写操作了,操作如下:
> use admin switched to db admin > db.auth("root","55555"); 1 >
执行结果为1表示认证成功。
整合Spring Boot
1.创建Spring Boot Web 工程
pom.xml添加MongoDB依赖
<!--mongodb 依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>2.配置 MongoDB
在application.properties 中配置 MongoDB 的连接信息,如下:
spring.data.mongodb.authentication-database=admin spring.data.mongodb.database=test spring.data.mongodb.host=192.168.18.101 spring.data.mongodb.port=27017 spring.data.mongodb.username=root spring.data.mongodb.password=55555
第一行配置验证登录信息的库
第二行表示要连接的库
第3~6行是 MongoDB 的链接地址和登录认证信息
创建实体类Project ,代码如下
package com.ffish.spring_boot_mongodb.pojo; /** * @Auther: shup * @Date: 2019/3/24 23:07 * @Description: TODO */ public class Project { private Integer pid; private String name; private String chargeName; public Integer getPid() { return pid; } public void setPid(Integer pid查人) { this.pid = pid; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getChargeName() { return chargeName; } public void setChargeName(String chargeName) { this.chargeName = chargeName; } @Override public String toString() { return "Project{" + "pid=" + pid + ", name='" + name + '\'' + ", chargeName='" + chargeName + '\'' + '}'; } }4.创建 ProjectDao
package com.ffish.spring_boot_mongodb.dao; import com.ffish.spring_boot_mongodb.pojo.Project; import org.springframework.data.mongodb.repository.MongoRepository; import java.util.List; /** * @Auther: shup * @Date: 2019/3/24 23:10 * @Description: TODO */ public interface ProjectDao extends MongoRepository<Project,Integer> { List<Project> findByChargeNameContains(String chargeName); Project findByNameEquals(String name); }5.创建 Controller
package com.ffish.spring_boot_mongodb.controller; import com.ffish.spring_boot_mongodb.dao.ProjectDao; import com.ffish.spring_boot_mongodb.pojo.Project; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.List; /** * @Auther: shup * @Date: 2019/3/24 23:13 * @Description: TODO */ @RestController public class ProjectController { @Autowired ProjectDao projectDao; @GetMapping("/test1") public void test1(){ List<Project> projects = new ArrayList<Project>(); Project p1 = new Project(); p1.setPid(1); p1.setName("宿舍楼建设"); p1.setChargeName("小张"); projects.add(p1); Project p2 = new Project(); p2.setPid(2); p2.setName("球场改造"); p2.setChargeName("小李"); projects.add(p2); projectDao.insert(projects); List<Project> projects1 = projectDao.findByChargeNameContains("小张"); System.out.println(projects1); Project project = projectDao.findByNameEquals("球场改造"); System.out.println(project); } }6.启动项目测试
浏览器访问 http://localhost:8080/test1
在MongoDB控制台进行测试
> use admin switched to db admin > db.auth("root","55555") 1 > use test switched to db test > db.project.find() { "_id" : ObjectId("5c97a1f5a852095374a14bcc"), "pid" : 1, "name" : "宿舍楼建设", "chargeName" : "小张", "_class" : "com.ffish.spring_boot_mongodb.pojo.Project" } { "_id" : ObjectId("5c97a1f5a852095374a14bcd"), "pid" : 2, "name" : "球场改造", "chargeName" : "小李", "_class" : "com.ffish.spring_boot_mongodb.pojo.Project" } >
数据已经成功存入test数据库了。
7.使用 MongoTemplate除了继承MongoRepository 外,Spring Data MongoDB 还提供了MongoTemplate 用来方便地操作 MongoDB
添加下面的代码到上面的Controller:
@Autowired MongoTemplate mongoTemplate; @GetMapping("/test2") public void test2(){ List<Project> projects = new ArrayList<Project>(); Project p1 = new Project(); p1.setPid(3); p1.setName("5号教学楼"); p1.setChargeName("河和"); projects.add(p1); Project p2 = new Project(); p2.setPid(4); p2.setName("3食堂"); p2.setChargeName("小丫"); projects.add(p2); mongoTemplate.insertAll(projects); List<Project> projects1 = mongoTemplate.findAll(Project.class); System.out.println(projects1); Project project = mongoTemplate.findById(3,Project.class); System.out.println(project); }
- Eclipse+Tomcat+MAVEN+SVN项目完整环境搭建+SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- Spring + Spring Boot + MyBatis + MongoDB的整合教程
- Spring Boot一、使用IDEA快速构建SpringBoot项目(详细图文教程)
- spring boot入门(三) springboot整合mybatis(c3p0数据源)。最完整、简单易懂、详细的spring boot教程。
- 很详细的SpringBoot整合UEditor教程
- SpringBoot基础教程及框架整合(一)----IDEA创建SpringBoot项目
- SpringBoot非官方教程 | 第八篇:springboot整合mongodb
- spring boot项目相关配置用war包部署到tomcat下详细教程
- docker安装redis连接redis可视化工具Redis Desktop Manager+springboot项目使用Cache缓存+springboot项目整合 Redis 实现缓存
- SpringBoot基础教程及框架整合(二)----项目结构简介
- 【备忘】2017年最新 项目实战 Spring Boot视频教程 微服务整合Mybatis
- Spring整合MongoDB详细讲解(maven项目)
- SpringBoot非官方教程 | 第八篇:springboot整合mongodb
- spring boot进阶(一) springboot整合redis,可操作java对象。最完整、简单易懂、详细的spring boot教程。
- spring boot整合activiti rest api详细教程
- SpringBoot整合RabbitMQ 实现五种消息模型 详细教程
- docker安装redis连接redis可视化工具Redis Desktop Manager+springboot项目使用Cache缓存+springboot项目整合 Redis 实现缓存
- spring boot整合 freemarker 详细教程
- 使用IDEA搭建SpringBoot项目且整合mongoDB和mysql
- SpringBoot非官方教程 | 第八篇:springboot整合mongodb