SpringBoot集成MongoDB客户端

SpringBoot集成MongoDB学习


Spring Boot Starters介绍

Spring Boot Starters是由Spring官方封装的一系列操作模块,包括操作Redis、MongoDb和Elasticsearch等Starter。使用SpringBoot Start能够简化项目搭建过程,省去了许多繁琐的配置,提升了开发效率,充分体现出了约定大于配置的优点。

  • ps:spring-boot-starter-xxx是由Spring官方提供的。如:spring-boot-starter-mongo。而xxx-spring-boot-starter则是由第三方提供的。如:mybatis-plus-boot-starter。

一、引入依赖

在项目pom.xml中引入如下依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
    <version>3.2.3</version>
</dependency>

二、配置MongoDB数据库信息

在项目application.yml中添加如下配置:

spring:
  data: 
	mongodb:
	  host: 192.168.220.136
	  port: 27017
	  database: testdb
	  authentication-database: admin
	  username: dev
	  password: abc123

三、创建实体类

创建实体类如下:

@Data
@AllArgsConstructor
@NoArgsConstructor
@Document("user") //表名
public class User{
	@Id //主键
	private ObjectId id;
	@Indexed //索引字段
	private String name;
	private Integer age;
	private String sex;
}

四、操作示例

在service中注入MongoTemlate对象:

@Service
public class UserService{
	//引入MongoTemplate
 	@Resource
 	private MongoTemplate mongoTemplate;
 	
	// 创建user集合方法
	 public Boolean createCollection() {
        // 集合名称
        String name = "user";
        // 创建集合
        mongoTemplate.createCollection(name);
        // 返回创建结果
        return mongoTemplate.collectionExists(collectionName);
    }
    
    // 新增
    public void savetUser(User user) {
        return mongoTemplate.save(user);
    }
    
    //删除
     public void deleteByName(String name) {
    	 Query query = Query.query(Criteria.where("name").is(name));
    	 return mongoTemplate.findAndRemove(query, User.class, "user")
     }

	//修改
	public void updateUser(User user) {
		//查询条件
		Query query = Query.query(Criteria.where("_id").is(user.getId()));
		// 设置修改值
		Update update = new Update();
		update.set("name", user.getName())
        return mongoTemplate.updateFirst(query, update, User.class);
    }

	//查询
	public User queryUserByName(String name) {
		//查询条件
		Query query = Query.query(Criteria.where("name").is(user.getName()));
        return mongoTemplate.findOne(query, User.class);
    }
}

测试:

@SpringBootTest
class UserServiceTest{
	@Resource
	UserService userService;
	
	@Test void testSaveUser(){
		User user = User.builder()
				.id(ObjectId.get())
				.name("xiaoming")
				.age(23).build();
		this.userService.saveUser(user);
	}
	
	@Test 
	void testUpdateUser(){
		User user = User.builder()
				.id(new ObjectId(623383c07145e564c4dd7865))
				.name("xiaohong")
				.age(23).build();
		this.userService.updateUser(user);
	}
	
	@Test 
	void testQueryUserByName(){
		String name = "xiaohong"
		User user = userService.queryUserByName(name);
		System.out.println(JSONUtil.toJsonStr(user));
	}
	
	@Test 
	void testUpdateUser(){
		User user = User.builder()
				.id(new ObjectId(623383c07145e564c4dd7865))
				.name("xiaohong")
				.age(23).build();
		this.userService.updateUser(user);
	}
	
	 @Test
	 void testDeleteByNmae(){
	 	String name = "xiaohong"
		User user = userService.deleteByName(name);
	}
}

更多API访问官方文档:👉API文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值