質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

3112閲覧

(Java)JDBCのRowSetについて

isaotsuneda

総合スコア316

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2014/08/27 08:46

JDBCに、RowSetという概念があるのを知っていますか?

もし知っている人がいたら、ResultSetとの違いを教えてください。

宜しくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

従来のJDBCでは、Connection,Statement,ResultSetの組み合わせでSQLの結果を操作していましたが、
RowSetはこれをもっと使いやすくしたAPIです。
自信を持って解説できるほど使ったことはありませんが...たとえば、下記のような操作でデータベースにアクセスできます。

例:CachedRowSet
// Java7以上 public static void usingRowSet(String url, String user, String password) throws SQLException { final String sql = ... ; // SELECT * FROM your_table RowSetFactory rowSetFactory = RowSetProvider.newFactory(); try (CachedRowSet rowSet = rowSetFactory.createCachedRowSet()) { rowSet.setUrl(url); rowSet.setUsername(user); rowSet.setPassword(password); rowSet.setCommand(sql); rowSet.execute(); while (rowSet.next()) { String id = rowSet.getString(1); long val = rowSet.getInt(2); System.out.printf("%s, %d%n", id, val); } rowSet.beforeFirst(); // 先頭に巻き戻す while (rowSet.next()) { String id = rowSet.getString(1); long val = rowSet.getInt(2); System.out.printf("%s, %d%n", id, val); } } }

また、上記のCachedRowSetを使えば、ResultSetをコネクション切断後も利用することができます。
ResultSet rs = ... ; rowSet.populate(rs); rowSet.beforeFirst(); // 先頭に巻き戻す while (rowSet.next()) { // ... }

もちろん、更新の操作もできます。

詳細については、まずAPIドキュメントの説明(↓)を読んでみるのが良さそうです。
パッケージ javax.sql.rowset の説明 (Java SE 7 API 仕様)

投稿2014/08/27 13:36

argius

総合スコア9388

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

isaotsuneda

2014/09/01 00:38

ご丁寧な回答ありがとうございました!参考になりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問