Trong bài viết này, chúng ta sẽ xem xét việc tích hợp MongoDB, một cơ sở dữ liệu mã nguồn mở NoSQL rất phổ biến với một máy khách Java độc lập
MongoDB được viết bằng C++ và có khá nhiều tính năng vững chắc như thu nhỏ bản đồ, tự động bảo vệ, sao chép, tính sẵn sàng cao, v.v.
2. MongoDB
Hãy bắt đầu với một vài điểm chính về bản thân MongoDB
- lưu trữ dữ liệu trong các tài liệu giống như JSON có thể có nhiều cấu trúc khác nhau
- sử dụng lược đồ động, có nghĩa là chúng tôi có thể tạo bản ghi mà không cần xác định trước bất kỳ điều gì
- cấu trúc của một bản ghi có thể được thay đổi đơn giản bằng cách thêm các trường mới hoặc xóa các trường hiện có
Mô hình dữ liệu nêu trên cho chúng ta khả năng biểu diễn các mối quan hệ phân cấp, lưu trữ các mảng và các cấu trúc phức tạp khác một cách dễ dàng
3. thuật ngữ
Việc hiểu các khái niệm trong MongoDB trở nên dễ dàng hơn nếu chúng ta có thể so sánh chúng với các cấu trúc cơ sở dữ liệu quan hệ
Hãy xem sự tương đồng giữa Mongo và hệ thống MySQL truyền thống
- Bảng trong MySQL trở thành Bộ sưu tập trong Mongo
- Hàng trở thành Tài liệu
- Cột trở thành Trường
- Tham gia được định nghĩa là tài liệu liên kết và nhúng
Tất nhiên, đây là một cách đơn giản để xem xét các khái niệm cốt lõi của MongoDB, nhưng vẫn hữu ích
Bây giờ, hãy đi sâu vào triển khai để hiểu cơ sở dữ liệu mạnh mẽ này
4. Phụ thuộc Maven
Chúng ta cần bắt đầu bằng cách xác định sự phụ thuộc của Trình điều khiển Java cho MongoDB
org.mongodb
mongo-java-driver
3.4.1
Để kiểm tra xem có phiên bản mới nào của thư viện được phát hành hay không – hãy theo dõi các bản phát hành tại đây
5. Sử dụng MongoDB
Bây giờ, hãy bắt đầu triển khai các truy vấn Mongo với Java. Chúng tôi sẽ làm theo các thao tác CRUD cơ bản vì chúng là cách tốt nhất để bắt đầu
5. 1. Tạo kết nối với MongoClient
Trước tiên, hãy tạo kết nối đến máy chủ MongoDB. Với phiên bản >= 2. 10. 0, chúng tôi sẽ sử dụng MongoClient
MongoClient mongoClient = new MongoClient["localhost", 27017];
Và đối với các phiên bản cũ hơn, hãy sử dụng lớp Mongo
Mongo mongo = new Mongo["localhost", 27017];
5. 2. Kết nối với cơ sở dữ liệu
Bây giờ, hãy kết nối với cơ sở dữ liệu của chúng tôi. Thật thú vị khi lưu ý rằng chúng ta không cần phải tạo một. Khi Mongo thấy cơ sở dữ liệu đó không tồn tại, nó sẽ tạo nó cho chúng ta
DB database = mongoClient.getDB["myMongoDb"];
Đôi khi, theo mặc định, MongoDB chạy ở chế độ xác thực. Trong trường hợp đó, chúng tôi cần xác thực trong khi kết nối với cơ sở dữ liệu
Chúng tôi có thể làm điều đó như trình bày dưới đây
MongoClient mongoClient = new MongoClient[];
DB database = mongoClient.getDB["myMongoDb"];
boolean auth = database.authenticate["username", "pwd".toCharArray[]];
5. 3. Hiển thị cơ sở dữ liệu hiện có
Hãy hiển thị tất cả các cơ sở dữ liệu hiện có. Khi chúng ta muốn sử dụng dòng lệnh, cú pháp để hiển thị cơ sở dữ liệu tương tự như MySQL
show databases;
Trong Java, chúng tôi hiển thị cơ sở dữ liệu bằng đoạn mã bên dưới
mongoClient.getDatabaseNames[].forEach[System.out::println];
đầu ra sẽ là
local 0.000GB
myMongoDb 0.000GB
Ở trên, local là cơ sở dữ liệu Mongo mặc định
5. 4. Tạo Bộ sưu tập
Hãy bắt đầu bằng cách tạo một Bộ sưu tập [bảng tương đương với MongoDB] cho cơ sở dữ liệu của chúng ta. Khi chúng tôi đã kết nối với cơ sở dữ liệu của mình, chúng tôi có thể tạo Bộ sưu tập dưới dạng
________số 8Bây giờ, hãy hiển thị tất cả các bộ sưu tập hiện có cho cơ sở dữ liệu hiện tại
database.getCollectionNames[].forEach[System.out::println];
đầu ra sẽ là
MongoClient mongoClient = new MongoClient["localhost", 27017];
05. 5. Lưu – Chèn
Thao tác lưu có ngữ nghĩa lưu hoặc cập nhật. nếu có id, nó sẽ thực hiện cập nhật, nếu không - nó sẽ thực hiện thao tác chèn
Khi chúng tôi cứu một khách hàng mới
MongoClient mongoClient = new MongoClient["localhost", 27017];
1Thực thể sẽ được chèn vào cơ sở dữ liệu
MongoClient mongoClient = new MongoClient["localhost", 27017];
2Tiếp theo, chúng ta sẽ xem xét thao tác tương tự - lưu - với ngữ nghĩa cập nhật
5. 6. Lưu – Cập nhật
Bây giờ chúng ta hãy xem lưu với ngữ nghĩa cập nhật, hoạt động trên một khách hàng hiện tại
MongoClient mongoClient = new MongoClient["localhost", 27017];
2Bây giờ, khi chúng tôi lưu khách hàng hiện tại – chúng tôi sẽ cập nhật nó
MongoClient mongoClient = new MongoClient["localhost", 27017];
4Cơ sở dữ liệu sẽ trông như thế này
MongoClient mongoClient = new MongoClient["localhost", 27017];
5Như bạn có thể thấy, trong ví dụ cụ thể này, lưu sử dụng ngữ nghĩa của cập nhật, bởi vì chúng tôi sử dụng đối tượng với _id đã cho
5. 7. Đọc một tài liệu từ một bộ sưu tập
Hãy tìm kiếm Tài liệu trong Bộ sưu tập bằng cách thực hiện truy vấn
MongoClient mongoClient = new MongoClient["localhost", 27017];
6Nó sẽ hiển thị Tài liệu duy nhất chúng tôi có trong Bộ sưu tập của chúng tôi
MongoClient mongoClient = new MongoClient["localhost", 27017];
75. 8. Xóa một tài liệu
Hãy chuyển sang thao tác CRUD cuối cùng của chúng ta, xóa
MongoClient mongoClient = new MongoClient["localhost", 27017];
8Với lệnh trên được thực thi, Tài liệu duy nhất của chúng tôi sẽ bị xóa khỏi Bộ sưu tập
6. Phần kết luận
Bài viết này là phần giới thiệu nhanh về cách sử dụng MongoDB từ Java
Việc triển khai tất cả các ví dụ và đoạn mã này có thể được tìm thấy trên GitHub – đây là một dự án dựa trên Maven, vì vậy sẽ dễ dàng nhập và chạy như hiện tại