• 在 Spring Boot 中使用 MongoDB


    准备工作

    关于 MongoDB 的安装, 参考文章:在 centos7 中使用 docker 安装 MongoDB 并远程连接

    添加依赖:

            <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>
    

    applica.properties 配置文件如下:

    spring.data.mongodb.host=xxx.xxx.xxx.xxx
    spring.data.mongodb.port=27017
    # mongodb 的用户名密码不统一,不同的数据库有不同的认证方式
    # 这里的用户名和密码,针对的是 admin 数据库
    spring.data.mongodb.authentication-database=admin
    spring.data.mongodb.username=root
    spring.data.mongodb.password=123456
    # 操作的数据库的名字,任取
    spring.data.mongodb.database=test
    

    示例

    新建 bean包,再建一个 Book类:

    @Data
    public class Book {
        private Integer id;
        private String name;
        private String author;
    }
    

    新建一个 dao包,再建一个 BookDao接口:

    public interface BookDao extends MongoRepository<Book, Integer> {
    }
    

    如上,接口 BookDao继承 MongoRepository,操作方式和 在 Spring Boot 中使用 Spring Data JPA 十分类似。

    运行项目,即可在数据库中自动建成对应的数据库和集合:

    测试

    在测试类中,进行增删改查的测试。

    增加数据

    @SpringBootTest
    class MongodbApplicationTests {
    
        @Autowired
        BookDao bookDao;
    
        @Test
        void contextLoads() {
            Book book = new Book();
            book.setId(2);
            book.setName("红楼梦");
            book.setAuthor("曹雪芹");
            bookDao.insert(book);
        }
    }
    

    查询数据

        @Test
        public void test1(){
            List<Book> list = bookDao.findAll();
            System.out.println(list);
        }
    

    自定义查询

    在 BookDao 中,自定义一个方法,按书名查询数据:

    public interface BookDao extends MongoRepository<Book, Integer> {
        /**
         * 定义一个按书名查询的方法
         * @param name
         * @return
         */
        List<Book> findBookByNameContaining(String name);
    }
    

    在测试方法中,调用这个方法:

        @Test
        public void test1(){
    
            List<Book> books = bookDao.findBookByNameContaining("红");
            System.out.println(books);
        }
    

    每天学习一点点,每天进步一点点。

  • 相关阅读:
    Tempter of the Bone
    CODE[VS]1160 蛇形矩阵
    CODE[VS] 1205 单词翻转
    CODE[VS] 1204 寻找子串位置
    a little sweet~
    我多喜欢你,你会知道
    P1474 货币系统 Money Systems
    P1096 Hanoi双塔问题
    P1209 [USACO1.3]修理牛棚 Barn Repair
    下一秒
  • 原文地址:https://www.cnblogs.com/youcoding/p/13895149.html
Copyright © 2020-2023  润新知