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. Show
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. ) 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:
2 - Config trong file ymlChắc hẳn các bạn đã quyen với kiểu connect này:
Nhưng cụ Mongo thì đi một đường riêng:
Ồ, 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
4- Repository
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
Run lại cái nào Úi xời mừng rơi nước mắt, chạy rồi ))))))))))) )))))))))))Đấ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 )) ))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ựngBạn sẽ lưu trữ 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
Bắt đầu với Spring InititalizrBạ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:
Cài đặt và khởi chạy MongoDBVớ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ảnMongoDB 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 4. Danh sách sau đây hiển thị lớp khách hàng (trong 6):
Ở đây bạn có một lớp 4 với ba thuộc tính: 8, 9 và 0. 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.
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, 9 và 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 5 tiện lợi in các chi tiết về khách hàng.
Tạo các truy vấn đơn giảnDữ 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 4, như danh sách sau (trong 0) cho thấy:
1 mở rộng giao diện 2 và cắm vào loại giá trị và ID mà nó hoạt động tương ứng với: 4 và 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 5, về cơ bản tìm kiếm các tài liệu thuộc loại 4 và tìm các tài liệu khớp với 9.Bạn cũng có 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 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ụngSpring 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 0):
1 là một chú thích thuận tiện thêm tất cả những điều sau đây:
Phương pháp 8 sử dụng phương thức Spring Boot 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 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 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 2.
Dữ liệu mùa xuân MongoDB sử dụng 5 để thực hiện các truy vấn đằng sau các phương thức 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 7 đã hoàn thành (trong 0): 0 7 bao gồm một phương thức 8 tự động là một thể hiện là 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 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 4, trình bày phương thức all output going to: /usr/local/var/log/mongodb/mongo.log4 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.log5 để tìm nạp tất cả các đối tượng 4 từ cơ sở dữ liệu. Sau đó, nó gọi all output going to: /usr/local/var/log/mongodb/mongo.log7 để lấy một 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.log9 để tìm tất cả khách hàng có họ là 0.
Xây dựng một cái lọ thực thiBạ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 1. Ngoài ra, bạn có thể xây dựng tệp JAR bằng cách sử dụng 2 và sau đó chạy tệp JAR, như sau: 1Nếu bạn sử dụng Maven, bạn có thể chạy ứng dụng bằng cách sử dụng 3. Ngoài ra, bạn có thể xây dựng tệp JAR với 4 và sau đó chạy tệp JAR, như sau: 2Khi 7 thực hiện 6, phương thức 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): 3Bản tóm tắtXin 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 |