Java中简单使用MongoRepository操作MongoDB

Java中简单使用MongoRepository操作MongoDB

前提:SpringBoot项目

添加依赖

<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.projectlombok</groupId>
        <artifactId>lombok</artifactId>
    </dependency>

    <dependency>
        <groupId>joda-time</groupId>
        <artifactId>joda-time</artifactId>
        <version>2.10.1</version>
    </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>

applicatin.properties

spring.data.mongodb.uri=mongodb://192.168.109.139:27017/test
# mongodb://你的主机:你的mongo端口/对应Mongo数据库

实体类

@Data
@Document("User") // 对应数据库表
public class User {
    @Id	
    private String id;	// _id字段 由Mongo自动生成
    private String name;
    private Integer age;
    private String email;
    private String createDate;
}

定义 Repository接口

public interface UserRepository extends MongoRepository<User,String> {
}

注入UserRespositoty对象

    @Autowired
    private UserRepository userRepository;

添加或修改

@Test
public void add() {
    User user = new User() ;
    user.setAge(45);
    user.setName("lihua");
    user.setEmail("4523@qq.com");
    // 如果有id的为修改,无id为添加
    User save = userRepository.save(user);
    System.out.println(save);
}

查询所有

@Test
void findAll() {
    List<User> all = userRepository.findAll();
    System.out.println(all);
}

根据Id查询

@Test
void findById() {
    // Optional为Java8新特性用于防治空指针异常
    Optional<User> userOptional = userRepository.findById("604dbbd87010e778b026ebe2");
    System.out.println(userOptional.get());
}

条件查询

@Test
void find() {
    User user = new User();
    user.setName("lihua");
    user.setAge(45);
    // 全and
    Example<User> example = Example.of(user);
    List<User> userList = userRepository.findAll(example);
    System.out.println(userList);
}

模糊查询

@Test
void findLike() {
    // ExampleMatcher.StringMatcher.CONTAINING 模糊匹配
    // withIgnoreCase 忽略大小写
    ExampleMatcher matcher = ExampleMatcher.matching()
        .withStringMatcher(ExampleMatcher.StringMatcher.CONTAINING)
        .withIgnoreCase(true);

    User user = new User();
    user.setName("li");
    Example<User> example = Example.of(user,matcher);

    List<User> userList = userRepository.findAll(example);

    System.out.println(userList);

}

分页查询

@Test
void findPage() {
    // 定义排序规则
    Sort sort = Sort.by(Sort.Direction.DESC,"age");
    // 分页规则(第几页(0开始), 多少个,排序规则)
    PageRequest page = PageRequest.of(0, 3, sort);
    ExampleMatcher matcher = ExampleMatcher.matching()
                    .withStringMatcher(ExampleMatcher.StringMatcher.CONTAINING)
                    .withIgnoreCase(true);

    User user = new User();
    user.setName("li");
    Example<User> example = Example.of(user , matcher);
    Page<User> userPage = userRepository.findAll(example, page);

    System.out.println(userPage.getTotalElements());
    System.out.println(userPage.getContent());
}

删除

@Test
void delete() {
    userRepository.deleteById("604dbbd87010e778b026ebe2");
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值