Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu kılavuzda, Bir Azure DocumentDB kümesine bağlanmak için bir Java konsol uygulaması geliştireceksiniz. Kılavuzda geliştirme ortamınızı ayarlama, Java için Azure SDK'dan paketi kullanarak azure-identity kimlik doğrulaması yapma ve belgeleri yönetmek için veritabanı ve koleksiyonla etkileşim kurma adımları yer alır.
Prerequisites
Azure aboneliği
- Azure aboneliğiniz yoksa ücretsiz bir hesap oluşturun
Mevcut bir Azure DocumentDB kümesi
- Kümeniz yoksa yeni bir küme oluşturun
Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz. Azure Cloud Shell'i kullanmaya başlama.
CLI referans komutlarını yerel olarak çalıştırmayı tercih ediyorsanız, Azure CLI'yi yükleyin. Windows veya macOS üzerinde çalışıyorsanız, Azure CLI'yi bir Docker konteynerinde çalıştırmayı düşünün. Daha fazla bilgi için Azure CLI'nin bir Docker konteynerında nasıl çalıştırılacağını inceleyin.
Yerel bir kurulum kullanıyorsanız, az login komutunu kullanarak Azure CLI'ye giriş yapın. Kimlik doğrulama işlemini tamamlamak için, terminalinizde görüntülenen adımları takip edin. Diğer oturum açma seçenekleri için bkz. Azure CLI kullanarak Azure'da kimlik doğrulaması.
İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma ve yönetme.
Yüklü olan sürümü ve bağımlı kütüphaneleri bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.
Kimlik verilen
rootrolünüzle küme için yapılandırılan Microsoft Entra kimlik doğrulaması.- Microsoft Entra kimlik doğrulamasını etkinleştirmek için yapılandırma kılavuzunu gözden geçirin.
Java'nın en son sürümü.
Konsol uygulamanızı yapılandırma
Ardından, yeni bir konsol uygulaması projesi oluşturun ve kümenizde kimlik doğrulaması yapmak için gerekli kitaplıkları içeri aktarın.
Maven komut satırı araçlarını kullanarak yeni bir Maven projesi oluşturun.
mvn archetype:generate -DgroupId=com.cosmicworks -DartifactId=mongodb-console-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=falseProje dizinine gidin.
cd mongodb-console-appUygun paket dizininde bir sınıfla yeni bir
Maindosyası oluşturun.mkdir -p src/main/java/com/cosmicworks touch src/main/java/com/cosmicworks/App.javaazure-identitybağımlılığını pom.xml dosyanıza ekleyin.<dependency> <groupId>com.azure</groupId> <artifactId>azure-identity</artifactId> <version>1.15.4</version> </dependency>mongodb-driver-syncbağımlılığını pom.xml dosyanıza ekleyin.<dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-driver-sync</artifactId> <version>5.4.0</version> </dependency>
Kümeye bağlanma
Şimdi kitaplığını Azure.IdentityTokenCredential kullanarak kümenize bağlanmak için bir kullanın. Resmi MongoDB sürücüsünün, kümeye bağlanırken kullanılmak üzere Microsoft Entra'dan belirteçleri almak için uygulanması gereken özel bir arabirimi vardır.
Java sınıf dosyanızın en üstündeki gerekli sınıfları içeri aktararak başlayın.
import java.util.concurrent.TimeUnit; import org.bson.Document; import org.bson.conversions.Bson; import com.azure.core.credential.TokenCredential; import com.azure.core.credential.TokenRequestContext; import com.azure.identity.DefaultAzureCredentialBuilder; import com.mongodb.MongoClientSettings; import com.mongodb.MongoCredential; import com.mongodb.MongoCredential.OidcCallbackContext; import com.mongodb.MongoCredential.OidcCallbackResult; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.client.model.Filters; import com.mongodb.client.model.ReplaceOptions; import com.mongodb.client.result.UpdateResult;Ana yönteminizde bir
DefaultAzureCredentialörnek oluşturun ve belirteçleri getirmek için OpenID Connect (OIDC) geri çağrısını ayarlayın.TokenCredential credential = new DefaultAzureCredentialBuilder().build(); MongoCredential.OidcCallback oidcCallback = new MongoCredential.OidcCallback() { @Override public OidcCallbackResult onRequest(OidcCallbackContext context) { TokenRequestContext tokenRequestContext = new TokenRequestContext() .addScopes("https://ossrdbms-aad.database.windows.net/.default"); String token = credential.getTokenSync(tokenRequestContext).getToken(); return new OidcCallbackResult(token); } };Önceden tanımlanmış geri aramanızı kullanarak
MongoCredentialyeni bir örneğini oluşturun.MongoCredential mongoCredential = MongoCredential.createOidcCredential(null) .withMechanismProperty("OIDC_CALLBACK", oidcCallback);Kümenin adı ve konak uç noktasının tamamı için değişkenler oluşturun.
String clusterName = "<azure-documentdb-cluster-name>"; String host = clusterName + ".global.mongocluster.cosmos.azure.com";Sunucu, bağlantı için en iyi uygulamalar ve kimlik bilgilerini kullanarak bir
MongoClientSettingsörneği oluşturun.MongoClientSettings settings = MongoClientSettings.builder() .applyToClusterSettings(builder -> builder .srvHost(host)) .applyToSocketSettings(builder -> builder .connectTimeout(2, TimeUnit.MINUTES)) .applyToSslSettings(builder -> builder .enabled(true)) .retryWrites(true) .credential(mongoCredential) .build();Oluşturduğunuz ayarları kullanarak yeni bir
MongoClientoluşturun.MongoClient client = MongoClients.create(settings); System.out.println("Client created");
Yaygın işlemler gerçekleştirme
Son olarak veritabanları, koleksiyonlar ve belgelerle ortak görevleri gerçekleştirmek için resmi kitaplığı kullanın. Burada, koleksiyonlarınızı ve öğelerinizi yönetmek için MongoDB veya DocumentDB ile etkileşimde bulunurken kullandığınız sınıfları ve yöntemleri kullanırsınız.
databasevecollectioniçin referanslar alın.MongoDatabase database = client.getDatabase("<database-name>"); System.out.println("Database pointer created"); MongoCollection<Document> collection = database.getCollection("<collection-name>"); System.out.println("Collection pointer created");Belgelerinizi bir
Productsınıfı kullanarak temsil edin.public class Product { private String _id; private String category; private String name; private int quantity; private double price; private boolean clearance; // Getters and setters ommitted for brevity }collection.replaceOnekullanarak upsert etkinleştirildiğinde yeni bir belge oluşturun.Document document = new Document() .append("_id", "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb") .append("category", "gear-surf-surfboards") .append("name", "Yamba Surfboard") .append("quantity", 12) .append("price", 850.00) .append("clearance", false); Bson match = Filters.eq("_id", "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"); ReplaceOptions options = new ReplaceOptions().upsert(true); UpdateResult result = collection.replaceOne(match, document, options); System.out.println("Document upserted with _id:\\t" + result.getUpsertedId().asString().getValue());collection.findve benzersiz tanımlayıcıyı kullanarak tek bir belgenin arama işlemini gerçekleştirin.Bson filter = Filters.eq("_id", "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"); collection.find(filter).forEach(doc -> { System.out.println("Read document _id:\\t" + doc.toJson()); });İkili JSON (BSON) filtresi kullanarak genel bir sorgu gerçekleştirin.
Bson query = Filters.eq("category", "gear-surf-surfboards"); collection.find(query).forEach(doc -> { System.out.println("Found document:\\t" + doc.toJson()); });ve
collection.deleteManyfiltresini kullanarak belgeleri silme.Bson filter = Filters.eq("clearance", true); collection.deleteMany(filter);