ToB企服应用市场:ToB评测及商务社交产业平台
标题:
SpringBoot 集成 MongoDB
[打印本页]
作者:
北冰洋以北
时间:
2024-12-26 04:50
标题:
SpringBoot 集成 MongoDB
MongoDB是一个非常强大的非关系型数据库,他以集合的形式存储我们的数据到数据库,他灵活的数据结构以及便于快速迭代业务的使用场景,包括他强大的查询相应速度,导致应用场景越来越普遍,下面我们将讲解怎样使用我们的MongoDB集成我们的SpringBoot。
安装:
这里讲解怎样在win10上面安装我们的MongoDB。下载地点。下载完成以后双击打开下载应用包。
背面一直下一步到完成就好。。。。。。。。。。,下面使用工具链接到我们的MongoDB,不需要账号暗码。
SpringBoot依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
<version>3.4.0</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.28</version>
<scope>compile</scope>
</dependency>
复制代码
spring.application.name=kafkaTest
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=mydatabase
#不需要密码验证
spring.data.mongodb.uri=mongodb://localhost:27017/mydatabase
#需要密码验证
#spring.data.mongodb.uri=mongodb://rootuser:rootpwd@localhost:27017/mydatabase
复制代码
package org.aogo.kafkatest.entity;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
@Document(collection = "users")
@Data
@Accessors(chain = true)
public class User {
@Id
private String id;
private String username;
private String email;
}
复制代码
package org.aogo.kafkatest.api;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.aogo.kafkatest.entity.User;
import org.aogo.kafkatest.server.UserService;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
@Slf4j
@RestController
@RequestMapping("/api/account")
@CrossOrigin(origins = "*")
public class AccountController {
@Resource
private UserService userService;
@GetMapping("test")
public User getUser() {
User user = new User();
user.setId("38");
user.setUsername("388");
user.setEmail("38888888@qq.com");
userService.saveUser(user);
if(user != null){
throw new RuntimeException("Username cannot be null");
}
//userService.getUserByUser("28");
return user;
}
}
复制代码
package org.aogo.kafkatest.server;
import org.aogo.kafkatest.entity.User;
import org.springframework.data.mongodb.repository.MongoRepository;
public interface UserRepository extends MongoRepository<User, String> {
// 可以在这里定义一些自定义的查询方法
}
复制代码
package org.aogo.kafkatest.server;
import org.aogo.kafkatest.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.*;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
private final UserRepository userRepository;
@Autowired
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
public void saveUser(User user) {
//保存或者更新
userRepository.save(user);
}
public User getUserById(String id) {
return userRepository.findById(id).orElse(null);
}
public Page<User> getUserByUser(String id) {
//分页
Pageable pageable = PageRequest.of(0, 10, Sort.by("id").descending()); // 第 0 页,每页 10 条数据
User user = new User();
user.setUsername("名稱");
Example<User> example = Example.of(user);
// 查询分页结果
Page<User> userPage = userRepository.findAll(example,pageable);
return userPage;
}
}
复制代码
常用语法:
//切换到数据库
use mydatabase
//创建用户并赋予权限
db.createUser({
user: "rootuser", // 用户名
pwd: "rootpwd", // 密码
roles: [
{ role: "readWrite", db: "mydatabase" } // 给用户赋予mydatabase数据库的权限 权限类别给admin类别
]
})
//查看用户
show users
//查看版本号
db.version()
复制代码
//插入数据
db.users.insert({
_id: '50',
username: "7899",
email: "7899"
})
//查询文档
db.users.find()
//根据条件查询文档
db.users.find({_id:'50'})
//保存/更新
db.users.save({
_id: '50',
username: "789911",
email: "7899"
})
//更新语句
db.users.update(
{ _id: "50" }, // 查询条件
{ // 更新的内容
$set: {
username: "789911",
email: "7899111"
}
}
)
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4