Hướng dẫn datasource for mongodb java - nguồn dữ liệu cho java mongodb

Note: Bài viết mang tích chất lưu lại kiến thức để sử dụng sau, do mày mò khắp google nhặt mỗi nơi một tí mới giải quyết được, nếu bạn nào gặp vấn đề tương tự thì có thể tham khảo.

Số là mình bắt đầu thực hiện một dự án mới trên Spring Boot và cần làm việc với NoSQL, cụ thể là Mông Gô Đê Bê (MongoDB), Trước thì mình có đọc và tham khảo qua về SQL và NoSQL rồi, tuy nhiên mình chỉ làm việc với MySQL, SQL, Postgre, Oracle - rặt một đám SQL. Đơn giản thì mình nghĩ chắc connect Mongo cũng thế thôi, vì JPA và Hibernate viết ra để dùng ALL In ONE mà. Cơ mà đâm đầu vào thì nó cũng mệt mỏi vãi đạn.

Những thứ cần chuẩn bị:

1 project Spring Boot maven hay gradle thì tùy, Mình xài gradle

Server Mongo ( Local cũng được)

Mongo Compass( Có cũng dc mà không cũng được)

IDE - tất nhiên ( M xài Intelij, bản 2020 trở lên tool mới hỗ trợ kết nối Mongo nhé)

Trước tiên các bạn cần nhớ bảng trong Mongo không gọi là Table mà

Table = Collection

Row = Documnent ( Cặp key value)

Còn vài thứ nữa các bạn tham khảo bài của bạn này nhé: Hướng dẫn Mongo cơ bản

Ấy thế mà trong entity @Table lại thay bằng @Document chứ không có cái @Collection ) Méo hiểu.

Hướng dẫn datasource for mongodb java - nguồn dữ liệu cho java mongodb
) Méo hiểu.

CỤ thể thì các bước cần làm như sau

1 - Thêm dependencies:

Các bạn cần:

org.springframework.data:spring-data-mongodb
org.mongodb:mongo-java-driver:3.12.11

2 - Config trong file yml

Chắc hẳn các bạn đã quyen với kiểu connect này:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloudsigning
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password:
    jpa:
      hibernate:
        ddl-auto: create
        naming:
          implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
          physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategyserver

Nhưng cụ Mongo thì đi một đường riêng:

spring:
  data:
    mongodb:
      authentication-database: admin
      database: test
      host: localhost
      port: 27017 

Ồ, Good Jobs. Có vẻ ngắn gọn ra phết nhờ

Run cái coi. Lỗi sấp mặt lợn, và sau 10p mò mò à nó k dùng @ Table mà xài @ Document + Repository thì extends MongoRepository thay vì JpaRepository

3 - Entity - Chỉ cần @Id thôi nhé, không cần chỉ định column cũng dc. right

@Entity
@Document(value = "user")
public class UserAccount {
    @Id
    private Integer id;

    private String userName;

4- Repository

@Repository
public interface UserAccountRepository extends MongoRepository {

 }

5 - Config Mongo

===> có vẻ ổn nhờ, Run cái nữa nào --- lại lỗi-- Google tiếp. À lại config tiếp:

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class , MongoAutoConfiguration.class, MongoDataAutoConfiguration.class})

== chạy thử, hơi giunnnnnn. Lại hẹo. Lần này lỗi có vẻ tường minh tí

Lỗi đây: A component required a bean named 'mongoTemplate' that could not be found.

Có vẻ thiếu Context không kiếm dc cái bean kia. Lại mò GG tiếp Đây rồi, mò mãi mới kiếm được trên GitHub, chắc của mấy anh Ấn thần thánh

@Configuration
public class MongoConfig extends AbstractMongoClientConfiguration {

    @Override
    protected String getDatabaseName() {
        return env.getProperty("spring.data.mongodb.database");
    }

}

Run lại cái nào Úi xời mừng rơi nước mắt, chạy rồi )))))))))))

Hướng dẫn datasource for mongodb java - nguồn dữ liệu cho java mongodb
)))))))))))

Đấy, cụ thể là các bạn chú ý mấy cái nghớ nghẩn đó.

Và đặc biệt trong file pom/build không được thiếu thằng này nhé " org.mongodb:mongo-java-driver" , không có nó là cái AbstractMongoClientConfiguration không có đủ client để run và hẹo luôn nha. Còn lại CRUD thì khả năng không khác các loại khác đâu, Query thì nhớ xài PLSQL nhá

Có thể các bạn thấy mình viết đơn giản có ba lần "**Run thử phát xem **" là chạy mượt mà bày vẽ viết cái bài hướng dẫn. Thực tế thì mình mất xừ buổi tối để connect mà chả giải quyết được việc gì khác, " **Run thử **" cũng đâu đấy 10-20 lần nha ))

Hướng dẫn datasource for mongodb java - nguồn dữ liệu cho java mongodb
))

Thank!!!

P/S bạn nào có cách ngắn hơn thì chỉ mình cái nhé

Hướng dẫn này hướng dẫn bạn qua quá trình sử dụng Dữ liệu Spring MongoDB để xây dựng một ứng dụng lưu trữ dữ liệu và lấy nó từ MongoDB, một cơ sở dữ liệu dựa trên tài liệu.

Những gì bạn sẽ xây dựng

Bạn sẽ lưu trữ

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloudsigning
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password:
    jpa:
      hibernate:
        ddl-auto: create
        naming:
          implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
          physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategyserver
4 POJOS (các đối tượng Java cũ đơn giản) trong cơ sở dữ liệu MongoDB bằng cách sử dụng Dữ liệu Spring MongoDB.

Những gì bạn cần

  • Khoảng 15 phút

  • Một trình soạn thảo văn bản yêu thích hoặc IDE

  • JDK 1.8 trở lên

  • Gradle 4+ hoặc Maven 3.2+

  • Bạn cũng có thể nhập mã thẳng vào IDE của mình:

    • Bộ công cụ mùa xuân (STS)

    • Ý tưởng intellij

    • VSCODE

Bắt đầu với Spring Inititalizr

Bạn có thể sử dụng dự án được khởi tạo trước này và nhấp vào Tạo để tải xuống tệp ZIP. Dự án này được cấu hình để phù hợp với các ví dụ trong hướng dẫn này.

Để khởi tạo thủ công dự án:

  1. Điều hướng đến https://start.spring.io. Dịch vụ này kéo theo tất cả các phụ thuộc bạn cần cho một ứng dụng và thực hiện hầu hết các thiết lập cho bạn.

  2. Chọn Gradle hoặc Maven và ngôn ngữ bạn muốn sử dụng. Hướng dẫn này giả định rằng bạn đã chọn Java.

  3. Nhấp vào phụ thuộc và chọn Dữ liệu mùa xuân MongoDB.Dependencies and select Spring Data MongoDB.

  4. Nhấp vào Tạo.Generate.

  5. Tải xuống tệp zip kết quả, đây là kho lưu trữ của ứng dụng web được cấu hình với các lựa chọn của bạn.

Nếu IDE của bạn có tích hợp khởi tạo lò xo, bạn có thể hoàn thành quy trình này từ IDE của mình.

Bạn cũng có thể chia rẽ dự án từ GitHub và mở nó trong IDE hoặc trình soạn thảo khác của bạn.

Cài đặt và khởi chạy MongoDB

Với dự án của bạn được thiết lập, bạn có thể cài đặt và khởi chạy cơ sở dữ liệu MongoDB.

Nếu bạn sử dụng máy Mac với homebrew, bạn có thể chạy lệnh sau:

Với MacPorts, bạn có thể chạy lệnh sau:

Sau khi bạn cài đặt MongoDB, bạn có thể khởi chạy nó trong cửa sổ bảng điều khiển bằng cách chạy lệnh sau (cũng khởi động quy trình máy chủ):

Bạn sẽ thấy đầu ra tương tự như sau:

all output going to: /usr/local/var/log/mongodb/mongo.log

Xác định một thực thể đơn giản

MongoDB là một cửa hàng tài liệu NoQuery. Trong ví dụ này, bạn lưu trữ các đối tượng

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloudsigning
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password:
    jpa:
      hibernate:
        ddl-auto: create
        naming:
          implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
          physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategyserver
4. Danh sách sau đây hiển thị lớp khách hàng (trong
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloudsigning
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password:
    jpa:
      hibernate:
        ddl-auto: create
        naming:
          implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
          physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategyserver
6):

package com.example.accessingdatamongodb;

import org.springframework.data.annotation.Id;


public class Customer {

  @Id
  public String id;

  public String firstName;
  public String lastName;

  public Customer() {}

  public Customer(String firstName, String lastName) {
    this.firstName = firstName;
    this.lastName = lastName;
  }

  @Override
  public String toString() {
    return String.format(
        "Customer[id=%s, firstName='%s', lastName='%s']",
        id, firstName, lastName);
  }

}

Ở đây bạn có một lớp

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloudsigning
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password:
    jpa:
      hibernate:
        ddl-auto: create
        naming:
          implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
          physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategyserver
4 với ba thuộc tính:
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloudsigning
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password:
    jpa:
      hibernate:
        ddl-auto: create
        naming:
          implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
          physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategyserver
8,
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloudsigning
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password:
    jpa:
      hibernate:
        ddl-auto: create
        naming:
          implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
          physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategyserver
9 và
spring:
  data:
    mongodb:
      authentication-database: admin
      database: test
      host: localhost
      port: 27017 
0.
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloudsigning
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password:
    jpa:
      hibernate:
        ddl-auto: create
        naming:
          implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
          physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategyserver
8 chủ yếu được sử dụng nội bộ bởi MongoDB. Bạn cũng có một hàm tạo duy nhất để điền vào các thực thể khi tạo một thể hiện mới.

Trong hướng dẫn này, các getters và setters điển hình đã bị bỏ lại cho sự ngắn gọn.

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloudsigning
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password:
    jpa:
      hibernate:
        ddl-auto: create
        naming:
          implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
          physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategyserver
8 phù hợp với tên tiêu chuẩn cho ID MongoDB, do đó, nó không yêu cầu bất kỳ chú thích đặc biệt nào gắn thẻ nó cho Dữ liệu mùa xuân MongoDB.

Hai thuộc tính khác,

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloudsigning
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password:
    jpa:
      hibernate:
        ddl-auto: create
        naming:
          implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
          physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategyserver
9 và
spring:
  data:
    mongodb:
      authentication-database: admin
      database: test
      host: localhost
      port: 27017 
0, không được bảo vệ. Người ta cho rằng chúng được ánh xạ tới các trường có cùng tên với các thuộc tính.

Phương pháp

spring:
  data:
    mongodb:
      authentication-database: admin
      database: test
      host: localhost
      port: 27017 
5 tiện lợi in các chi tiết về khách hàng.

MongoDB lưu trữ dữ liệu trong các bộ sưu tập. Dữ liệu mùa xuân MongoDB ánh xạ lớp
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloudsigning
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password:
    jpa:
      hibernate:
        ddl-auto: create
        naming:
          implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
          physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategyserver
4 thành một bộ sưu tập gọi là
spring:
  data:
    mongodb:
      authentication-database: admin
      database: test
      host: localhost
      port: 27017 
7. Nếu bạn muốn thay đổi tên của bộ sưu tập, bạn có thể sử dụng chú thích Spring Data MongoDB từ
spring:
  data:
    mongodb:
      authentication-database: admin
      database: test
      host: localhost
      port: 27017 
8 trên lớp.

Tạo các truy vấn đơn giản

Dữ liệu mùa xuân MongoDB tập trung vào việc lưu trữ dữ liệu trong MongoDB. Nó cũng kế thừa chức năng từ dự án Dữ liệu Spring, chẳng hạn như khả năng rút ra các truy vấn. Về cơ bản, bạn không cần phải học ngôn ngữ truy vấn của MongoDB. Bạn có thể viết một số phương thức và các truy vấn được viết cho bạn.

Để xem cách thức hoạt động của nó, hãy tạo một giao diện kho lưu trữ truy vấn các tài liệu

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloudsigning
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password:
    jpa:
      hibernate:
        ddl-auto: create
        naming:
          implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
          physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategyserver
4, như danh sách sau (trong
@Entity
@Document(value = "user")
public class UserAccount {
    @Id
    private Integer id;

    private String userName;
0) cho thấy:

package com.example.accessingdatamongodb;

import java.util.List;

import org.springframework.data.mongodb.repository.MongoRepository;

public interface CustomerRepository extends MongoRepository {

  public Customer findByFirstName(String firstName);
  public List findByLastName(String lastName);

}

@Entity
@Document(value = "user")
public class UserAccount {
    @Id
    private Integer id;

    private String userName;
1 mở rộng giao diện
@Entity
@Document(value = "user")
public class UserAccount {
    @Id
    private Integer id;

    private String userName;
2 và cắm vào loại giá trị và ID mà nó hoạt động tương ứng với:
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloudsigning
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password:
    jpa:
      hibernate:
        ddl-auto: create
        naming:
          implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
          physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategyserver
4 và
@Entity
@Document(value = "user")
public class UserAccount {
    @Id
    private Integer id;

    private String userName;
4, tương ứng. Giao diện này đi kèm với nhiều hoạt động, bao gồm các hoạt động CRUD tiêu chuẩn (tạo, đọc, cập nhật và xóa).

Bạn có thể xác định các truy vấn khác bằng cách khai báo chữ ký phương pháp của họ. Trong trường hợp này, thêm

@Entity
@Document(value = "user")
public class UserAccount {
    @Id
    private Integer id;

    private String userName;
5, về cơ bản tìm kiếm các tài liệu thuộc loại
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloudsigning
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password:
    jpa:
      hibernate:
        ddl-auto: create
        naming:
          implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
          physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategyserver
4 và tìm các tài liệu khớp với
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloudsigning
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password:
    jpa:
      hibernate:
        ddl-auto: create
        naming:
          implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
          physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategyserver
9.

Bạn cũng có

@Entity
@Document(value = "user")
public class UserAccount {
    @Id
    private Integer id;

    private String userName;
8, tìm thấy một danh sách những người theo họ.

Trong một ứng dụng Java điển hình, bạn viết một lớp thực hiện

@Entity
@Document(value = "user")
public class UserAccount {
    @Id
    private Integer id;

    private String userName;
1 và tự mình tạo ra các truy vấn. Điều làm cho Spring Data MongoDB trở nên hữu ích là thực tế là bạn không cần phải tạo triển khai này. Dữ liệu mùa xuân MongoDB tạo ra nó một cách nhanh chóng khi bạn chạy ứng dụng.

Bây giờ bạn có thể kết nối ứng dụng này và xem nó trông như thế nào!

Tạo một lớp ứng dụng

Spring IniticizR tạo một lớp đơn giản cho ứng dụng. Danh sách sau đây cho thấy lớp khởi tạo được tạo cho ví dụ này (trong

@Repository
public interface UserAccountRepository extends MongoRepository {

 }
0):

package com.example.accessingdatamongodb;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class AccessingDataMongodbApplication {

  public static void main(String[] args) {
    SpringApplication.run(AccessingDataMongodbApplication.class, args);
  }

}

@Repository
public interface UserAccountRepository extends MongoRepository {

 }
1 là một chú thích thuận tiện thêm tất cả những điều sau đây:

  • @Repository
    public interface UserAccountRepository extends MongoRepository {
    
     }
    
    2: Thẻ lớp là nguồn định nghĩa đậu cho bối cảnh ứng dụng.

  • @Repository
    public interface UserAccountRepository extends MongoRepository {
    
     }
    
    3: Nói với Spring Boot để bắt đầu thêm đậu dựa trên cài đặt đường dẫn lớp, các loại đậu khác và các cài đặt thuộc tính khác nhau. Ví dụ: nếu
    @Repository
    public interface UserAccountRepository extends MongoRepository {
    
     }
    
    4 nằm trên đường dẫn lớp, chú thích này đánh dấu ứng dụng dưới dạng ứng dụng web và kích hoạt các hành vi chính, chẳng hạn như thiết lập
    @Repository
    public interface UserAccountRepository extends MongoRepository {
    
     }
    
    5.

  • @Repository
    public interface UserAccountRepository extends MongoRepository {
    
     }
    
    6: Nói với Spring để tìm kiếm các thành phần, cấu hình và dịch vụ khác trong gói
    @Repository
    public interface UserAccountRepository extends MongoRepository {
    
     }
    
    7, cho phép nó tìm các bộ điều khiển.

Phương pháp

@Repository
public interface UserAccountRepository extends MongoRepository {

 }
8 sử dụng phương thức Spring Boot
@Repository
public interface UserAccountRepository extends MongoRepository {

 }
9 để khởi chạy một ứng dụng. Bạn có nhận thấy rằng không có một dòng XML nào không? Không có tệp
@Configuration
public class MongoConfig extends AbstractMongoClientConfiguration {

    @Override
    protected String getDatabaseName() {
        return env.getProperty("spring.data.mongodb.database");
    }

}
0. Ứng dụng web này là Java thuần túy 100% và bạn không phải đối phó với việc định cấu hình bất kỳ hệ thống ống nước hoặc cơ sở hạ tầng nào.

Spring Boot tự động xử lý các kho lưu trữ đó miễn là chúng được bao gồm trong cùng một gói (hoặc gói phụ) của lớp

@Repository
public interface UserAccountRepository extends MongoRepository {

 }
1 của bạn. Để kiểm soát nhiều hơn trong quá trình đăng ký, bạn có thể sử dụng chú thích
@Configuration
public class MongoConfig extends AbstractMongoClientConfiguration {

    @Override
    protected String getDatabaseName() {
        return env.getProperty("spring.data.mongodb.database");
    }

}
2.

Theo mặc định,
@Configuration
public class MongoConfig extends AbstractMongoClientConfiguration {

    @Override
    protected String getDatabaseName() {
        return env.getProperty("spring.data.mongodb.database");
    }

}
2 quét gói hiện tại cho bất kỳ giao diện nào mở rộng một trong các giao diện kho lưu trữ dữ liệu Spring. Bạn có thể sử dụng
@Configuration
public class MongoConfig extends AbstractMongoClientConfiguration {

    @Override
    protected String getDatabaseName() {
        return env.getProperty("spring.data.mongodb.database");
    }

}
4 của nó để nói một cách an toàn dữ liệu MongoDB để quét một gói gốc khác theo loại nếu bố cục dự án của bạn có nhiều dự án và nó không tìm thấy kho lưu trữ của bạn.

Dữ liệu mùa xuân MongoDB sử dụng

@Configuration
public class MongoConfig extends AbstractMongoClientConfiguration {

    @Override
    protected String getDatabaseName() {
        return env.getProperty("spring.data.mongodb.database");
    }

}
5 để thực hiện các truy vấn đằng sau các phương thức
@Configuration
public class MongoConfig extends AbstractMongoClientConfiguration {

    @Override
    protected String getDatabaseName() {
        return env.getProperty("spring.data.mongodb.database");
    }

}
6 của bạn. Bạn có thể tự mình sử dụng mẫu cho các truy vấn phức tạp hơn, nhưng hướng dẫn này không bao gồm điều đó. (Xem Hướng dẫn tham khảo Data Data MongoDB)

Bây giờ bạn cần sửa đổi lớp đơn giản mà khởi tạo đã tạo cho bạn. Bạn cần thiết lập một số dữ liệu và sử dụng nó để tạo đầu ra. Danh sách sau đây cho thấy lớp

@Configuration
public class MongoConfig extends AbstractMongoClientConfiguration {

    @Override
    protected String getDatabaseName() {
        return env.getProperty("spring.data.mongodb.database");
    }

}
7 đã hoàn thành (trong
@Repository
public interface UserAccountRepository extends MongoRepository {

 }
0):

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloudsigning
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password:
    jpa:
      hibernate:
        ddl-auto: create
        naming:
          implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
          physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategyserver
0

@Configuration
public class MongoConfig extends AbstractMongoClientConfiguration {

    @Override
    protected String getDatabaseName() {
        return env.getProperty("spring.data.mongodb.database");
    }

}
7 bao gồm một phương thức
@Repository
public interface UserAccountRepository extends MongoRepository {

 }
8 tự động là một thể hiện là
@Entity
@Document(value = "user")
public class UserAccount {
    @Id
    private Integer id;

    private String userName;
1. Dữ liệu mùa xuân MongoDB tự động tạo ra một proxy và tiêm nó ở đó. Chúng tôi sử dụng
@Entity
@Document(value = "user")
public class UserAccount {
    @Id
    private Integer id;

    private String userName;
1 thông qua một vài bài kiểm tra. Đầu tiên, nó lưu một số đối tượng
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloudsigning
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password:
    jpa:
      hibernate:
        ddl-auto: create
        naming:
          implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
          physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategyserver
4, trình bày phương thức
all output going to: /usr/local/var/log/mongodb/mongo.log
4 và thiết lập một số dữ liệu để sử dụng. Tiếp theo, nó gọi
all output going to: /usr/local/var/log/mongodb/mongo.log
5 để tìm nạp tất cả các đối tượng
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloudsigning
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password:
    jpa:
      hibernate:
        ddl-auto: create
        naming:
          implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
          physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategyserver
4 từ cơ sở dữ liệu. Sau đó, nó gọi
all output going to: /usr/local/var/log/mongodb/mongo.log
7 để lấy một
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloudsigning
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password:
    jpa:
      hibernate:
        ddl-auto: create
        naming:
          implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
          physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategyserver
4 bằng tên của cô ấy. Cuối cùng, nó gọi
all output going to: /usr/local/var/log/mongodb/mongo.log
9 để tìm tất cả khách hàng có họ là
package com.example.accessingdatamongodb;

import org.springframework.data.annotation.Id;


public class Customer {

  @Id
  public String id;

  public String firstName;
  public String lastName;

  public Customer() {}

  public Customer(String firstName, String lastName) {
    this.firstName = firstName;
    this.lastName = lastName;
  }

  @Override
  public String toString() {
    return String.format(
        "Customer[id=%s, firstName='%s', lastName='%s']",
        id, firstName, lastName);
  }

}
0.

Theo mặc định, Spring Boot cố gắng kết nối với một thể hiện được lưu trữ cục bộ của MongoDB. Đọc các tài liệu tham khảo để biết chi tiết về việc trỏ ứng dụng của bạn vào một ví dụ của MongoDB được lưu trữ ở nơi khác.

Xây dựng một cái lọ thực thi

Bạn có thể chạy ứng dụng từ dòng lệnh với Gradle hoặc Maven. Bạn cũng có thể xây dựng một tệp JAR thực thi duy nhất có chứa tất cả các phụ thuộc, lớp và tài nguyên cần thiết và chạy điều đó. Xây dựng một bình có thể thực thi giúp bạn dễ dàng vận chuyển, phiên bản và triển khai dịch vụ như một ứng dụng trong suốt vòng đời phát triển, trên các môi trường khác nhau, v.v.

Nếu bạn sử dụng Gradle, bạn có thể chạy ứng dụng bằng cách sử dụng

package com.example.accessingdatamongodb;

import org.springframework.data.annotation.Id;


public class Customer {

  @Id
  public String id;

  public String firstName;
  public String lastName;

  public Customer() {}

  public Customer(String firstName, String lastName) {
    this.firstName = firstName;
    this.lastName = lastName;
  }

  @Override
  public String toString() {
    return String.format(
        "Customer[id=%s, firstName='%s', lastName='%s']",
        id, firstName, lastName);
  }

}
1. Ngoài ra, bạn có thể xây dựng tệp JAR bằng cách sử dụng
package com.example.accessingdatamongodb;

import org.springframework.data.annotation.Id;


public class Customer {

  @Id
  public String id;

  public String firstName;
  public String lastName;

  public Customer() {}

  public Customer(String firstName, String lastName) {
    this.firstName = firstName;
    this.lastName = lastName;
  }

  @Override
  public String toString() {
    return String.format(
        "Customer[id=%s, firstName='%s', lastName='%s']",
        id, firstName, lastName);
  }

}
2 và sau đó chạy tệp JAR, như sau:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloudsigning
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password:
    jpa:
      hibernate:
        ddl-auto: create
        naming:
          implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
          physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategyserver
1

Nếu bạn sử dụng Maven, bạn có thể chạy ứng dụng bằng cách sử dụng

package com.example.accessingdatamongodb;

import org.springframework.data.annotation.Id;


public class Customer {

  @Id
  public String id;

  public String firstName;
  public String lastName;

  public Customer() {}

  public Customer(String firstName, String lastName) {
    this.firstName = firstName;
    this.lastName = lastName;
  }

  @Override
  public String toString() {
    return String.format(
        "Customer[id=%s, firstName='%s', lastName='%s']",
        id, firstName, lastName);
  }

}
3. Ngoài ra, bạn có thể xây dựng tệp JAR với
package com.example.accessingdatamongodb;

import org.springframework.data.annotation.Id;


public class Customer {

  @Id
  public String id;

  public String firstName;
  public String lastName;

  public Customer() {}

  public Customer(String firstName, String lastName) {
    this.firstName = firstName;
    this.lastName = lastName;
  }

  @Override
  public String toString() {
    return String.format(
        "Customer[id=%s, firstName='%s', lastName='%s']",
        id, firstName, lastName);
  }

}
4 và sau đó chạy tệp JAR, như sau:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloudsigning
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password:
    jpa:
      hibernate:
        ddl-auto: create
        naming:
          implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
          physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategyserver
2

Khi

@Configuration
public class MongoConfig extends AbstractMongoClientConfiguration {

    @Override
    protected String getDatabaseName() {
        return env.getProperty("spring.data.mongodb.database");
    }

}
7 thực hiện
package com.example.accessingdatamongodb;

import org.springframework.data.annotation.Id;


public class Customer {

  @Id
  public String id;

  public String firstName;
  public String lastName;

  public Customer() {}

  public Customer(String firstName, String lastName) {
    this.firstName = firstName;
    this.lastName = lastName;
  }

  @Override
  public String toString() {
    return String.format(
        "Customer[id=%s, firstName='%s', lastName='%s']",
        id, firstName, lastName);
  }

}
6, phương thức
package com.example.accessingdatamongodb;

import org.springframework.data.annotation.Id;


public class Customer {

  @Id
  public String id;

  public String firstName;
  public String lastName;

  public Customer() {}

  public Customer(String firstName, String lastName) {
    this.firstName = firstName;
    this.lastName = lastName;
  }

  @Override
  public String toString() {
    return String.format(
        "Customer[id=%s, firstName='%s', lastName='%s']",
        id, firstName, lastName);
  }

}
7 được tự động gọi khi khởi động lò xo bắt đầu. Bạn sẽ thấy một cái gì đó như sau (với đầu ra khác, chẳng hạn như truy vấn):

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloudsigning
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password:
    jpa:
      hibernate:
        ddl-auto: create
        naming:
          implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
          physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategyserver
3

Bản tóm tắt

Xin chúc mừng! Bạn thiết lập một máy chủ MongoDB và viết một ứng dụng đơn giản sử dụng Data Data MongoDB để lưu các đối tượng vào và tìm nạp chúng từ cơ sở dữ liệu, tất cả mà không cần viết triển khai kho lưu trữ cụ thể.

Xem thêm