Docs Menu
Docs Home
/ / /
Java 同期

Java ドライバー クイック スタート

項目一覧

  • はじめに
  • プロジェクトを設定する
  • Java Development Kit(JDK)をインストールする
  • プロジェクトを作成する
  • MongoDB を依存関係として追加する
  • MongoDB クラスターを作成する
  • Atlasで無料階層クラスターをセットアップする
  • アプリケーションから MongoDB クラスターをクエリする
  • POJOの操作(任意)
  • 次のステップ

このガイドでは、 Java ドライバーを使用して MongoDB Atlas cluster に接続するアプリケーションを作成する方法について説明します。別のドライバーまたはプログラミング言語を使用して MongoDB に接続する場合は、公式 MongoDB ドライバーのリストを参照してください。

Java ドライバーを使用すると、Java アプリケーションから MongoDB クラスターに接続して通信できます。

MongoDB Atlas は、MongoDB クラスターでデータをホストする完全管理クラウドデータベース サービスです。このガイドでは、独自の無料クラスター(クレジットカードは不要)を開始する方法を説明します。

次の手順を参照して、Java アプリケーションを MongoDB Atlas クラスターに接続します。

システムに JDK 8 以降がインストールされていることを確認してください。Java のバージョンを確認してJDKをインストールする方法の詳細については、 Oracle の JDKインストールの概要ドキュメント を参照してください。

このガイドでは、Maven または Gradle を使用して MongoDB Java ドライバーの依存関係を追加する方法を示します。Maven または Gradle を構成してプロジェクトをビルドおよび実行しやすくするために、Intellij IDEA や Eclipse IDE などの統合開発環境(IDE)を使用することをお勧めします。

IDE を使用していない場合は、「 Maven の構築 」を参照してください。 または 新しい Gradle ビルドの作成 プロジェクトをセットアップする方法の詳細については、 を参照してください。

Maven を使用している場合は、次のものを pom.xml 依存関係リストに追加します。

<dependencies>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-sync</artifactId>
<version>4.8.2</version>
</dependency>
</dependencies>

Gradle を使用している場合は、次のものを build.gradle 依存関係リストに追加します。

dependencies {
implementation 'org.mongodb:mongodb-driver-sync:4.8.2'
}

注意

Java ドライバーをインストールするには、ビルド ツールを使用することをお勧めします。ただし、ドライバーと依存関係をダウンロードする必要がある場合は、 MongoDB Group Mavenリポジトリで JAR ファイルを見つけることができます。Java ドライバーでは、 bsonmongodb-driver-core、および slf4j-api 依存関係の JAR ファイルをダウンロードする必要があります。

依存関係を構成したら、それらがプロジェクトで使用可能であることを確認します。そのためには、依存関係マネージャーを実行し、IDE でプロジェクトを更新する必要がある場合があります。

Java プロジェクトの依存関係を設定したら、データを保存および管理できる MongoDB クラスターを作成します。Atlas スタートガイド を完了して、新しい Atlas アカウントを設定し、無料レベルの MongoDB クラスターを作成して起動し、データセットをロードして、データと対話します。

Atlas ガイドの手順を完了すると、Atlas に新しい MongoDB クラスターがデプロイされ、新しいデータベース ユーザーが作成され、サンプル データセットがクラスターにロードされます。

この手順では、MongoDB Java ドライバーを使用して MongoDB クラスターに接続し、サンプル データに対してクエリを実行するアプリケーションを作成して実行します。

MongoDB クラスターへの接続方法に関する指示を、接続文字列と呼ばれる文字列でドライバーに渡します。この文字列には、クラスターのホスト名または IP アドレスとポート、認証メカニズム、ユーザー認証情報(該当する場合)、およびその他の接続オプションに関する情報が含まれます。

Atlas によってホストされていないインスタンスまたはクラスターに接続する場合は、接続文字列の形式方法については、MongoDB に接続するその他の方法を参照してください。

前のステップで作成したクラスターとユーザーの接続文字列を取得するには、Atlas アカウントにログインして「Database」セクションに移動し、次に示すように接続するクラスターの [Connect] をクリックします。

Atlas Connection GUI クラスター選択画面

Connect Your Application ステップに進み、[Java ドライバー] を選択します。バージョンは [4.3以降] を選択します。[Copy] アイコンをクリックして、次に示すように接続文字列 をクリップボードにコピーします。

Atlas Connection GUI 接続文字列画面

Atlas 接続文字列を安全な場所に保存し、次の手順でアクセスできます。

次に、プロジェクトの基本パッケージ ディレクトリに、QuickStart.javaというアプリケーションを格納するファイルを作成します。次のサンプル コードを使用して、MongoDB Atlas のサンプル データセットに対してクエリを実行し、 uri 変数の値を「MongoDB Atlas 接続文字列」に置き換えます。

import static com.mongodb.client.model.Filters.eq;
import org.bson.Document;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
public class QuickStart {
public static void main( String[] args ) {
// Replace the placeholder with your MongoDB deployment's connection string
String uri = "<connection string uri>";
try (MongoClient mongoClient = MongoClients.create(uri)) {
MongoDatabase database = mongoClient.getDatabase("sample_mflix");
MongoCollection<Document> collection = database.getCollection("movies");
Document doc = collection.find(eq("title", "Back to the Future")).first();
if (doc != null) {
System.out.println(doc.toJson());
} else {
System.out.println("No matching documents found.");
}
}
}
}

QuickStart クラスを実行すると、サンプル データセットから映画の詳細が出力されます。出力は次のようになります。

{
_id: ...,
plot: 'A young man is accidentally sent 30 years into the past...',
genres: [ 'Adventure', 'Comedy', 'Sci-Fi' ],
...
title: 'Back to the Future',
...
}

出力がまったくないかエラーが表示される場合は、Java クラスに適切な接続文字列が含まれているかどうか、およびサンプル データセットを MongoDB Atlas クラスターにロードしたかどうかを確認してください。

重要

TLS v1.3 を使用する場合の既知の接続の問題

アプリケーションの実行中に MongoDB インスタンスまたはクラスターへの接続時に次のようなエラーが発生した場合は、JDK を最新のパッチ リリースに更新する必要がある可能性があります。

javax.net.ssl.SSLHandshakeException: extension (5) should not be presented in certificate_request

この例外は、特定のバージョンの JDK で TLS 1.3 プロトコルを使用する場合の既知の問題ですが、次のリリースで修正されました。

  • JDK 11.0.7

  • JDK 13.0.3

  • JDK 14.0.2

このエラーを解決するには、JDK を以前のパッチ バージョンまたはそれ以降のバージョンに更新します。

この手順を完了すると、Java ドライバーを使用して MongoDB クラスターに接続し、サンプル データに対してクエリを実行し、結果を出力する動作するアプリケーションが作成されます。

前のセクションでは、サンプル コレクションに対してクエリを実行して、マップのようなクラス Document のデータを取得しました。このセクションでは、独自の Plain Old Java Object(POJO)を使用して MongoDB からデータを格納および取得する方法を学べます。

プロジェクトの基本パッケージ ディレクトリーに Movie.java というファイルを作成し、次のフィールド、セッター、ゲッターを含むクラスの次のコードを追加します。

public class Movie {
String plot;
List<String> genres;
String title;
public String getPlot() {
return plot;
}
public void setPlot(String plot) {
this.plot = plot;
}
public List<String> getGenres() {
return genres;
}
public void setGenres(List<String> genres) {
this.genres = genres;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
@Override
public String toString() {
return "Movie [\n plot=" + plot + ",\n genres=" + genres + ",\n title=" + title + "\n]";
}
}

プロジェクト内のMovieファイルと同じパッケージ ディレクトリに新しいファイルQuickStartPojoExample.javaを作成します。 次のサンプル コードを使用して、 MongoDB Atlasのサンプル データセットに対してクエリを実行し、uri 変数の値を「 MongoDB Atlas接続string 」に置き換えます。 <db_password>接続 の「 」セクションを、string atlasAdmin 権限を持つユーザー用に作成したパスワードに置き換えてください。

import static com.mongodb.MongoClientSettings.getDefaultCodecRegistry;
import static com.mongodb.client.model.Filters.eq;
import static org.bson.codecs.configuration.CodecRegistries.fromProviders;
import static org.bson.codecs.configuration.CodecRegistries.fromRegistries;
import org.bson.codecs.configuration.CodecProvider;
import org.bson.codecs.configuration.CodecRegistry;
import org.bson.codecs.pojo.PojoCodecProvider;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
public class QuickStartPojoExample {
public static void main(String[] args) {
CodecProvider pojoCodecProvider = PojoCodecProvider.builder().automatic(true).build();
CodecRegistry pojoCodecRegistry = fromRegistries(getDefaultCodecRegistry(), fromProviders(pojoCodecProvider));
// Replace the uri string with your MongoDB deployment's connection string
String uri = "<connection string uri>";
try (MongoClient mongoClient = MongoClients.create(uri)) {
MongoDatabase database = mongoClient.getDatabase("sample_mflix").withCodecRegistry(pojoCodecRegistry);
MongoCollection<Movie> collection = database.getCollection("movies", Movie.class);
Movie movie = collection.find(eq("title", "Back to the Future")).first();
System.out.println(movie);
}
}
}

QuickStartPojoExample クラスを実行すると、サンプル データセットから映画の詳細が出力されます。出力は次のようになります。

Movie [
plot=A young man is accidentally sent 30 years into the past...,
genres=[Adventure, Comedy, Sci-Fi],
title=Back to the Future
]

出力がまったくないかエラーが表示される場合は、Java クラスに適切な接続文字列が含まれているかどうか、およびサンプル データセットを MongoDB Atlas クラスターにロードしたかどうかを確認してください。

POJO を使用してデータを保存および取得する方法の詳細については、次のリンクを参照してください。

基礎 CRUD ガイドで Java ドライバーを使用してデータを読み取って変更する方法、または使用例から一般的な操作を実行する方法を確認できます。

戻る

MongoDB Java ドライバー