Spring整合MongoDB小Demo
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Spring整合MongoDB小Demo,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4538字,纯文字阅读大概需要7分钟。
内容图文
docker安装MongoDB
- 查找mongoDB的镜像
docker search mongodb
- 下载mongo镜像
docker pull mongo
- 查看本地是否mongo的镜像
docker images
- 运行容器,将端口映射到宿主机的27017端口
docker run -itd --name mongo -p 27017:27017 mongo
创建Maven工程(IDEA)
- 添加依赖(Spring测试依赖、SpringData MongoDB依赖)
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>1.10.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.3.13.RELEASE</version>
<exclusions>
<exclusion>
<artifactId>spring-core</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
- resource目录下创建mongo.properties文件,存储连接的数据库和地址和端口
mongo.database=admin
mongo.server.address=127.0.0.1
mongo.server.port=27017
- 创建com.test.config包,里面创建MongoConfig.java,使用@PropertySource注解读取刚才的配置文件,继承抽象类AbstractMongoConfiguration,重载getDatabaseName()和mongo()方法,注入Environment对象,使用配置文件中的配置
package com.test.config;
import com.mongodb.Mongo;
import com.mongodb.MongoClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
/**
* @author 11699
* @date 20/3/21 - 11:11
*/
@Configuration
@PropertySource("classpath:mongo.properties")
public class MongoConfig extends AbstractMongoConfiguration {
@Autowired
private Environment env;
@Override
protected String getDatabaseName() {
return env.getProperty("mongo.database");
}
@Override
public Mongo mongo() throws Exception {
return new MongoClient(
env.getProperty("mongo.server.address"),
Integer.parseInt(env.getProperty("mongo.server.port")));
}
}
- 创建con.test.domain包,创建Student类,使用@Document标记是这是一个文档,@Id标记id字段,@Field("stu_age")标记持久化时候对应的域名
package com.test.domain;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;
/**
* @author 11699
* @date 20/3/21 - 11:28
*/
@Document
public class Student {
@Id
private String id;
private String name;
@Field("stu_age")
private Integer age;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
- 创建测试类 注入MongoOperations(MongoTemplate实现的接口)
package com.test;
import com.test.config.MongoConfig;
import com.test.domain.Student;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
* Unit test for simple App.
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = MongoConfig.class)
public class AppTest {
@Autowired
private MongoOperations mongo;
}
- 测试保存
@Test
public void testSave(){
Student student = new Student();
student.setName("小明");
student.setAge(11);
mongo.save(student, "stu");
}
- 查询数量
@Test
public void testCount(){
long count = mongo.getCollection("stu").count();
System.out.println("数量为:"+ count);
}
- 查询全部
@Test
public void testQuery(){
List<Student> list = mongo.findAll(Student.class, "stu");
for (Student student : list) {
System.out.println(student);
}
}
- 根据id查询
@Test
public void testFindById(){
Student stu = mongo.findById("5e759d94ecc4c0fe0007f312", Student.class, "stu");
System.out.println(stu);
}
- 复杂查询
@Test
public void testComplexQuery(){
List<Student> list = mongo.find(Query.query(Criteria.where("name").is("小明")), Student.class, "stu");
for (Student student : list) {
System.out.println(student);
}
}
- 删除
@Test
public void testRemove(){
//先查询
Student stu = mongo.findById("5e759d94ecc4c0fe0007f312", Student.class, "stu");
mongo.remove(stu);
}
源码下载
Spring整合MongoDB小Demo
标签:安装 lex ref 整合 oop turn find depend dock
本文系统来源:https://www.cnblogs.com/erkye/p/12539099.html
内容总结
以上是互联网集市为您收集整理的Spring整合MongoDB小Demo全部内容,希望文章能够帮你解决Spring整合MongoDB小Demo所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。