前言
MongoDB 是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:
- MongoDB是一个独立的服务器。
- 它是基于文档的,而不是基于表格的。
- 它是非结构化的。
- 它具有强大的主流开发语言支持,如C#、C++、Java、PHP、Perl、Python、Ruby。
- 可扩展性。
- 使用高效的二进制数据存储,包括大型对象(如视频等)。
- 支持完全索引,包含内部对象。
- 面向集合存储,易存储对象类型的数据。
mongoDB 安装
具体安装过程可参考MongoDB安装 。
pom.xml文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| <dependencies> <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>
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies>
|
配置文件
这里配置mongoDB的地址和数据库信息。
1 2 3 4 5 6
| spring: data: mongodb: host: 127.0.0.1 port: 27017 database: test
|
实体类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| public class User { private long id; private String username; private String password;
public User(long id, String username, String password) { this.id = id; this.username = username; this.password = password; }
public long getId() { return id; }
public void setId(long id) { this.id = id; }
public String getUsername() { return username; }
public void setUsername(String username) { this.username = username; }
public String getPassword() { return password; }
public void setPassword(String password) { this.password = password; } }
|
数据操作层
接口继承MongoRepository
1 2
| public interface UserRepository extends MongoRepository<User, Long> { }
|
controller类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| @RestController public class UserController {
@Autowired private UserRepository userRepository;
@GetMapping("save") public String save() { User user = new User(System.currentTimeMillis(), "用户" + System.currentTimeMillis(), "123"); userRepository.save(user); return "success"; }
@GetMapping("getUserList") public List<User> getUserList() { List<User> userList = userRepository.findAll(); return userList; }
@GetMapping("delete") public String delete(Long id) { userRepository.deleteById(id); return "success"; }
@GetMapping("update") public String update(Long id, String username, String password) { User user = new User(id, username, password); userRepository.save(user); return "success"; } }
|
测试
- 访问save方法,并查看数据。
use test:使用test数据库。
db.user.find(): 查看user文档。
