15

今日までResultSet、クエリの結果を処理するときに一緒に作業していました。しかし、今日私は少し読んで、それらが私の目的をよりよく果たすことができることに気づきましたRowSetCachedRowsetすべての例で、オブジェクトと呼ばれる場所を読みましたがRowSetCachedRowSetコードで自分で試してみると、それらがインターフェースであり、例ではそれらのインターフェースの実装を使用していることがわかりました。

今私の質問は、それらの実装をどこで見つけるかです、そして何か公式なものはありますか?

それらをダウンロードする必要がありますか、それともJDKに付属していますか?

4

4 に答える 4

20

実装はJRE固有です。Oracle(Sun)JREには、多数の実装が付属しています。

  • com.sun.rowset.JdbcRowSetImpl
  • com.sun.rowset.CachedRowSetImpl
  • com.sun.rowset.WebRowSetImpl
  • com.sun.rowset.FilteredRowSetImpl
  • com.sun.rowset.JoinRowSetImpl

Java 1.6以前では、それらを自分で作成する必要があります。

JdbcRowSet rowSet = new JdbcRowSetImpl();
rowSet.setDataSourceName("jdbc/dbname");
// Or
rowSet.setUrl("jdbc:vendor://host:port/dbname");
rowSet.setUsername("username");
rowSet.setPassword("password");

rowSet.setCommand("SELECT id, name, value FROM tbl");
rowSet.execute();

while (rowSet.next()) {
    // ...
}

Java 1.7では、ファクトリによってそれらを取得できるためjavax.sql.rowset、基盤となるJRE実装に依存せず、必要に応じて選択した実装を微調整できます。

RowSetFactory rowSetFactory = RowSetProvider.newFactory();
JdbcRowSet rowSet = rowSetFactory.createJdbcRowSet();
// ...

ResultSetそれは、建設を引き継ぐ可能性を提供するだけではありません。これらの実装には、平均的なJDBCドライバーは付属していません(少なくとも、MySQLとPostgreSQLには付属していません)。javaxこれは基本的に、パッケージ名のプレフィックスのヒントとして、JDBC API上の追加の(オプションの)レイヤーです。

行セットを調べてそこまで到達した場合は、代わりにHibernateやJPAなどのORMを調べることを検討することをお勧めします。これらは、第1レベルまたは第2レベルのキャッシュの可能性を提供します。

参照:

于 2011-11-21T20:29:21.150 に答える
0

およびはRowSetCachedRowSetJDBCドライバーによって実装されます。

データベースプロバイダーは、OracleMySqlなどのドライバーを提供します。ただし、これらのドライバーは、実際のデータベースと組み合わせた場合にのみ意味があります。

于 2011-11-21T19:37:42.997 に答える
0

JDKが付属しています。

JDK 10では、jarはjdk-10.0.2 / lib/jrt-fs.jarです。

そして、jar内のパッケージ/クラスは次のとおりです。javax.sql.RowSet.class

ダニエル・ピニェイロ

danielpm1982@gmail.com

ここに画像の説明を入力してください

ここに画像の説明を入力してください

于 2018-08-22T19:17:33.927 に答える
0

EclipseJavaビルドパスにrt.jarを追加します。次に、すべての実装クラスが表示されます。それ以外の場合は、jdkからrt.jarへのアクセスを許可していないEclipseから制限を削除できます。私のために働きます。私はjdk1.6とEclipseLunaを使用していました。

于 2019-02-07T14:56:56.057 に答える