JDBCのRowSetオブジェクトとは?特徴と使い方をサンプルコードで解説
RowSetオブジェクトとは
RowSetは、ResultSetオブジェクトをラップ(包み込む)するオブジェクトです。データベースへの接続・切断が可能で、シリアライズ(直列化)にも対応しています。また、プロパティを設定することでJavaBeanコンポーネントとして扱うことができ、RowSetオブジェクトはネットワーク経由で受け渡すことも可能です。
デフォルトでは、RowSetオブジェクトはスクロール可能かつ更新可能(updatable)なため、通常のResultSetオブジェクトをスクロール・更新可能にしたい場合にも活用されます。
RowSetオブジェクトの取得方法
RowSetオブジェクトは、次のメソッドを使用して取得できます。
RowSetProvider.newFactory().createJdbcRowSet()
サンプルプログラム
ここでは、データベースに「dataset」という名前のテーブルが存在するものとします。
+--------------+-----------+ | mobile_brand | unit_sale | +--------------+-----------+ | Iphone | 3000 | | Samsung | 4000 | | Nokia | 5000 | | Vivo | 1500 | | Oppo | 900 | | MI | 6400 | | MotoG | 4360 | | Lenovo | 4100 | | RedMi | 4000 | | MotoG | 4360 | | OnePlus | 6334 | +--------------+-----------+
次のJDBCのサンプルコードでは、RowSetオブジェクトを作成し、そのオブジェクトを使って「dataset」テーブルの内容を取得します。
import java.sql.DriverManager;
import javax.sql.RowSet;
import javax.sql.rowset.RowSetProvider;
public class RowSetExample {
public static void main(String args[]) throws Exception {
// ドライバの登録
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
// RowSetオブジェクトの作成
RowSet rowSet = RowSetProvider.newFactory().createJdbcRowSet();
// URLの設定
String mysqlUrl = "jdbc:mysql://localhost/TestDB";
rowSet.setUrl(mysqlUrl);
// ユーザー名の設定
rowSet.setUsername("root");
// パスワードの設定
rowSet.setPassword("password");
// クエリ(コマンド)の設定
rowSet.setCommand("select * from Dataset");
System.out.println("Contents of the table");
while(rowSet.next()) {
System.out.print("Brand: "+rowSet.getString(1)+", ");
System.out.print("Sale: "+rowSet.getString(2));
System.out.println("");
}
}
}
実行結果
Contents of the table Brand: Iphone, Sale: 3000 Brand: Samsung, Sale: 4000 Brand: Nokia, Sale: 5000 Brand: Vivo, Sale: 1500 Brand: Oppo, Sale: 900 Brand: MI, Sale: 6400 Brand: MotoG, Sale: 4360 Brand: Lenovo, Sale: 4100 Brand: RedMi, Sale: 4000 Brand: MotoG, Sale: 4360 Brand: OnePlus, Sale: 6334
まとめ
RowSetオブジェクトは、ResultSetの機能を拡張した便利なインターフェースです。接続・切断の両モードに対応し、シリアライズやネットワーク越しの受け渡しが可能な点が大きな特徴です。JdbcRowSetを利用すれば、URL・ユーザー名・パスワード・コマンドを設定するだけで、従来のResultSetよりも柔軟にデータベース操作を行えます。
-
JDBCのResultSetとは?ResultSetオブジェクトからデータを取得する方法を徹底解説
JDBCにおけるResultSetインターフェースは、SQLクエリを実行した結果として生成される表形式(テーブル形式)のデータを表現するためのものです。ResultSetは現在の行を指し示す「カーソル」を持っており、初期状態では、このカーソルは最初の行の直前に位置しています。カーソルを移動して結果セットを走査するResultSetインターフェースが提供するnext()メソッドを使うと、現在のカーソル位置から次の行へとポインタを移動できます。このメソッドはboolean値を返し、次の行が存在すればtrue、現在位置以降にこれ以上の行がない場合はfalseを返します。そのため、whileループの中
-
Java JDBCでMySQLのCOUNTクエリを実行したときの戻り値の型は何?取得方法を解説
COUNT関数の戻り値の型は「long」 MySQLのCOUNT()関数をJava JDBCから実行した場合、戻り値の型はlong型になります。結果を取得するには、ResultSetのgetLong()メソッドを使用します。 rs.next(); long result = rs.getLong(anyAliasName); 以下では、サンプルデータベース「test3」を使って、実際にテーブルを作成し、COUNTクエリの結果をJavaで取得する手順を順番に解説します。 1. サンプルテーブルの作成 まず、テスト用のテーブルを作成します。テーブル作成用のSQLは次のとおりです。 mysql&g