MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

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よりも柔軟にデータベース操作を行えます。

  1. JDBCのResultSetとは?ResultSetオブジェクトからデータを取得する方法を徹底解説

    JDBCにおけるResultSetインターフェースは、SQLクエリを実行した結果として生成される表形式(テーブル形式)のデータを表現するためのものです。ResultSetは現在の行を指し示す「カーソル」を持っており、初期状態では、このカーソルは最初の行の直前に位置しています。カーソルを移動して結果セットを走査するResultSetインターフェースが提供するnext()メソッドを使うと、現在のカーソル位置から次の行へとポインタを移動できます。このメソッドはboolean値を返し、次の行が存在すればtrue、現在位置以降にこれ以上の行がない場合はfalseを返します。そのため、whileループの中

  2. 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