一键学会springboot整合mongodb实现增删改查

发布于:2022-12-26 ⋅ 阅读:(210) ⋅ 点赞:(0)

本文将从工程的建立到mongo的使用进行讲解。

一、创建工程

仅选择Spring Web、Spring Data MongoDB即可

到此工程建立完毕,就会建立一个mongo基础的java工程了。

二、环境依赖

<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-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
    </dependencies>

 三、mongo库配置和文件配置

如果是第一次使用mongo,需要创建用户

> use mydb
switched to db mydb
> db.createUser({user:"user", pwd:"123456", roles:[{role:"readWriteAnyDatabase", db:"mydb"}]});
Successfully added user: {
	"user" : "user",
	"roles" : [
		{
			"role" : "readWriteAnyDatabase",
			"db" : "mydb"
		}
	]
}

momgo权限

 配置文件。根据自己的实际库名称将properties配置完整。

spring.data.mongodb.authentication-database=mydb

spring.data.mongodb.host=127.0.0.1

spring.data.mongodb.port=27017

spring.data.mongodb.username=user

spring.data.mongodb.password=password

# 指定使用的数据库
# 不必预先创建,不存在该数据库会自动创建
spring.data.mongodb.database=db_user

四、创建实体类

@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@Data
public class User {

    @Id
    private String id;
    public String name;
    private String age;
}

五、创建dao层和实现类

在dao层里面创建自己需要的方法。本次将增删改查方法列出来

public interface UserDao {

    //增加
    void saveStu(User user);

    //删除
    void deleteUser(String id);

    //修改
    void updateUser(User user);

    //根据id获取user
    User getUserById(String id);

    //获取全部user
    List<User>getAllUser();

}
@Repository
public class UserService implements UserDao {

    @Resource
    private MongoTemplate mongoTemplate;

    @Override
    public void saveStu(User user) {
        mongoTemplate.save(user);
    }

    @Override
    public void deleteUser(String id) {
        User user = mongoTemplate.findById(id,User.class);
        mongoTemplate.remove(user);
    }

    @Override
    public void updateUser(User user) {
        mongoTemplate.save(user);
    }

    @Override
    public User getUserById(String id) {
        return mongoTemplate.findById(id,User.class);
    }

    @Override
    public List<User> getAllUser() {
        return mongoTemplate.findAll(User.class);
    }
}

六、测试

@SpringBootTest
@Slf4j
class MongoTestApplicationTests {

    @Resource
    private UserDao userDao;

    //插入十个user实例
    @Test
    void contextLoads() {
        for (int i = 0; i<10;i++ ){
            User user = new User()
                    .setId(String.valueOf(i+1))
                    .setName("小明")
                    .setAge("10");
            log.info("名字============{}", user);
            userDao.saveStu(user);
        }
    }
    //删除id为2的user
    @Test
    void deleteUser(){
        userDao.deleteUser("2");
    }

    //修改
    @Test
    void updateUser(){
        User user = userDao.getUserById("3");
        //将id为3的user的age修改为20
        user.setAge("20");
        userDao.updateUser(user);
    }

    //根据id获取user
    @Test
    void getUserById(){
        User user = userDao.getUserById("5");
         log.info("id=5的用户为=================:{}",user);
    }

    void getAllUser(){
        List<User>list = userDao.getAllUser();
        list.forEach(System.out::println);
    }

}

七、测试结果

1、db_user库开始的时候并没有。随着我们对db_user做操作,这个库相应生成

第一部分是之前的库名,下面部分是执行save操作后生成的库。

 2、save操作生成的user。是根据代码生成的十个user实例

 3、删除id为2的user,图中可以看出已经删除 

4、修改id为3的user的age为20,图中可以看到已经修改

 5、根据id获取id=5的user,图中可以看到已经获取到

 6、获取所有user,图中可以看到都已获取到

 以上就是springboot整合mongodb的完整使用。按照这个流程来一遍吧!


网站公告

今日签到

点亮在社区的每一天
去签到