8.2. Eclipse Vert.x JDBC クライアントの変更点
Eclipse Vert.x 4 以降、JDBC クライアントは SQL クライアントをサポートします。SQL 共通モジュールは、io.vertx:vertx-jdbc-client
モジュールにマージされる io.vertx:vertx-sql-common
という JDBC クライアントでマージされました。io.vertx:vertx-jdbc-client
にはそれが含まれるため、io.vertx:vertx-sql-common
依存関係ファイルを削除する必要があります。SQL 共通クライアントのマージにより、すべてのデータベース API が JDBC クライアントに統合されました。
Eclipse Vert.x 4 では、SQL クライアントが更新され、以下のクライアントが含まれるようになりました。
- リアクティブ PostgreSQL クライアント。以前のリリースでは、リアクティブ PostgreSQL クライアントが含まれていました。
- リアクティブ MySQL クライアント
- リアクティブ DB2 クライアント
- リアクティブ PostgreSQL クライアントを引き続き組み込みます。このクライアントは Eclipse Vert.x 3.x リリースでも利用できていました。
- 既存の JDBC クライアントに JDBC クライアント API と SQL クライアント API の両方が含まれるようになりました。
リアクティブ実装では、データベースネットワークプロトコルを使用します。これにより、リソース効率が向上します。
データベースへの JDBC 呼び出しはブロック呼び出しです。JDBC クライアントはワーカースレッドを使用してこれらの呼び出しをブロックしません。
以下のセクションでは、Eclipse Vert.x JDBC クライアントの変更点を説明します。
8.2.1. プールの作成
Eclipse Vert.x 4 では、JDBC クライアント API を使用してプールを作成できます。以前のリリースでは、クライアントのみを作成できました。プールを作成できませんでした。
以下の例は、Eclipse Vert.x 3.x でクライアントを作成する方法を示しています。
// 3.x SQLClient client = JDBCClient.create(vertx, jsonConfig);
以下の例は、Eclipse Vert.x 4 でプールを作成する方法を示しています。
// 4.x JDBCPool pool = JDBCPool.pool(vertx, jsonConfig);
Eclipse Vert.x 3.x API は Eclipse Vert.x 4 でサポートされていますが、アプリケーションで新しい JDBC クライアント API を使用することが推奨されます。
プールを使用すると、単純なクエリーを実行できます。単純なクエリーの接続を管理する必要はありません。ただし、複雑なクエリーや複数のクエリーの場合は、接続を管理する必要があります。
以下の例は、Eclipse Vert.x 3.x でクエリーの接続を管理する方法を示しています。
// 3.x client.getConnection(res -> { if (res.succeeded()) { SQLConnection connection = res.result(); // Important, do not forget to return the connection connection.close(); } else { // Failed to get connection } });
以下の例は、Eclipse Vert.x 4 でクエリーの接続を管理する方法を示しています。
// 4.x pool .getConnection() .onFailure(e -> { // Failed to get a connection }) .onSuccess(conn -> { // Important, do not forget to return the connection conn.close(); });