このトピックでは、Java 用 Cassandra クライアントドライバーを使用して、Cassandra Query Language(CQL)経由で LindormTable に接続して使用する方法について説明します。
前提条件
Java Development Kit(JDK)V1.8 以降がインストールされていること。
CQL 経由で Java 用 Cassandra クライアントドライバーがインストールされていること。詳細については、Cassandra クライアントドライバーのインストールをご参照ください。
クライアントの IP アドレスが Lindorm インスタンスのホワイトリストに追加されていること。詳細については、ホワイトリストの設定をご参照ください。
[cassandra SQL 用 Lindormtable エンドポイント]を取得していること。詳細については、エンドポイントの表示をご参照ください。
手順
接続パラメーターを設定します。
String[] contactPoints = new String[]{ "<host>" }; Cluster cluster = Cluster.builder() .addContactPoints(contactPoints) .withAuthProvider(new PlainTextAuthProvider(username, password)) .build(); cluster.init(); Session session = cluster.connect();
説明<host>
を、Lindorm コンソールで取得した [cassandra SQL 用 Lindormtable エンドポイント] に置き換えます。例:ld-bp17j28j2y7pm****-proxy-lindorm.lindorm.rds.aliyuncs.com
。username
を、Lindorm インスタンスへの接続に使用できるユーザー名に置き換えます。デフォルトのユーザー名は root です。password
を、Lindorm インスタンスへの接続に使用できるパスワードに置き換えます。パスワードを忘れた場合は、LindormTable の [クラスター管理システム] に移動してパスワードを変更できます。詳細については、ユーザーのパスワードの変更をご参照ください。
Java 用 Cassandra クライアントドライバーの API 操作を使用して、CQL 経由で Lindorm ワイドテーブルにアクセスします。次のコードスニペットは、Lindorm ワイドテーブルにアクセスする方法の例を示しています。
DDL 操作
// キー スペースを作成します。キー スペースのレプリケーション戦略とレプリケーション係数を設定します。 session.execute( "CREATE KEYSPACE IF NOT EXISTS testKeyspace WITH replication " + "= {'class':'SimpleStrategy', 'replication_factor':1};"); // テーブルを作成し、テーブルのプライマリキー、クラスターキー、および通常キーを指定します。 session.execute( "CREATE TABLE IF NOT EXISTS testKeyspace.testTable (" + "id int PRIMARY KEY," + "name text," + "age int," + "address text" + ");"); // テーブルをクリアします。 session.execute("TRUNCATE TABLE testKeyspace.testTable;"); // テーブルを削除します。 session.execute("DROP TABLE testKeyspace.testTable ");
DML 操作
// INSERT ステートメントを実行します。 session.execute( "INSERT INTO testKeyspace.testTable (id, name, age, address) " + "VALUES (" + "1," + "'testname'," + "11," + "'hangzhou');"); // SELECT ステートメントを実行します。テーブル内のすべての列を照会する場合は、SELECT * を使用します。照会する列を指定することもできます。 ResultSet res = session.execute( "SELECT * FROM testKeyspace.testTable ;"); // 各列のデータを照会する場合は、次のステートメントを実行します。 for (Row row : results) { int id = row.getInt("id"); String name = row.getString("name"); int age = row.getInt("age"); String address = row.getString("address"); } // セッションを閉じます。 session.close(); // クラスターをシャットダウンします。 cluster.close();