MongoDB是一个开源文件存储数据库,提供高性能,高可用性和自动扩展。示例实现了:CRUD功能,表关联查询,属性名自定义,统计,正则表达式查询。
整体项目
pom配置
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.cimu</groupId>
<artifactId>chapter_mongodb</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>chapter_mongodb</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
核心代码
实体类:
User,UserProfile
@Id:主键注解
@DBRef:指定数据表关联,还可以配置是否懒加载
@Field("passwordNew"):mongodb中以该字段作为字段名称
测试类:ChapterMongodbApplicationTests
@RunWith(SpringRunner.class)
@SpringBootTest
public class ChapterMongodbApplicationTests {
@Autowired
private MongoTemplate mongoTemplate;
@Test
@Rollback(false)
public void save() {
User user = new User();
user.setId(5L);
user.setName("5");
user.setPassword("6666");
mongoTemplate.save(user);
}
@Test
@Rollback(false)
public void saveUser() {
User user = new User();
user.setId(1L);
user.setName("6");
Query query = new Query(Criteria.where("id").is(user.getId()));
Update update = new Update().set("name", user.getName());
mongoTemplate.updateFirst(query, update, User.class);
}
@Test
@Rollback(false)
public void deleteById() {
Query query = new Query(Criteria.where("id").is(1));
mongoTemplate.remove(query, User.class);
}
@Test
public void selectAll() {
List userList = mongoTemplate.findAll(User.class);
System.out.println(userList);
}
@Test
public void selectByName() {
Query query = new Query(Criteria.where("name").is("5"));
User userDb = mongoTemplate.findOne(query, User.class);
System.out.println(userDb);
}
@Test
@Rollback(false)
public void saveProfile() {
UserProfile userProfile = new UserProfile();
userProfile.setId(1L);
User user = new User();
user.setId(5L);
user.setName("6");
user.setPassword("777");
userProfile.setUser(user);
mongoTemplate.save(userProfile);
}
@Test
public void findProfile() {
List userList = mongoTemplate.findAll(UserProfile.class);
System.out.println(userList);
}
@Test
public void countUser() {
Query query = new Query(Criteria.where("name").is("5"));
long count = mongoTemplate.count(query, User.class);
System.out.println(count);
}
@Test
public void likeUser() {
Query query = new Query(Criteria.where("name").regex("^5"));
List userList = mongoTemplate.find(query, User.class);
System.out.println(userList);
}
}
配置
#如果你使用mongodb3.0 那么需要使用这个配置,host port不在支持 如果要配置多个数据库,则中间用","分割
#spring.data.mongodb.uri=mongodb://user:secret@mongo1.example.com:12345,mongo2.example.com:23456/test
#如果你使用mongodb2.0 那么可以使用下面这个配置
spring.data.mongodb.host=xxxxxxx
spring.data.mongodb.port=27017
spring.data.mongodb.database=test
#spring.data.mongodb.authentication-database= # 认证数据库名字.
#spring.data.mongodb.database= #数据库名字
#spring.data.mongodb.field-naming-strategy= # 要使用的FieldNamingStrategy的完全限定名称.
#spring.data.mongodb.grid-fs-database= # GridFS数据库名称.
#spring.data.mongodb.host= # 数据库地址. 不能和URI同时存在.
#spring.data.mongodb.password= # 登录密码. 不能和URI同时存在.
#spring.data.mongodb.port= # 数据库端口. 不能和URI同时存在.
#spring.data.mongodb.repositories.type=auto # 要启用的Mongo存储库的类型.
#spring.data.mongodb.uri=mongodb://localhost/test # 数据库访问地址. 不能和host、post一起存在
#spring.data.mongodb.username= # 登录数据库的用户名.不能和URI同时存在.
本文为博主原创文章,未经博主允许不得转载。
更多内容请访问:IT源点
注意:本文归作者所有,未经作者允许,不得转载