2017-11-09 8 views
0

まず、私はJavaの絶対初心者です。私は12年前に学校に少し触れました。それ以来触れていない。申し訳ありませんが、質問が少し基本的に聞こえるかもしれません。java(1.5)のデータベースからバイトア(blob ...)を読み込むのに問題がある

Java 1.5で動作するクライアントのWebサービスを変更する必要があります。はい、これはJavaの非常に古いバージョンです。また、これからの通知まで、私たちはそれに固執しています。私たちの決断ではありません...

私はPostgreのテーブルからデータを読む必要があります。このテーブルは、自動インクリメントID、Vehicule ID、データタイプID、タイムスタンプ、および値を表すbyteaを含むdata_valueフィールドを有する。各データ型は異なるデータ構造を持っています。

たとえば、データタイプ1は油温で、温度は1つの値しかありません。データは2バイトで表され、華氏10度の温度です。

データタイプ2はGPS座標であり、20バイトで表されます。バイト1-4は緯度を表し、バイト5-8は経度、9-10は高度、11は衛星の数などです。

ウェブサービスはorgを使用しています。 springframework.jdbc.support.rowset.SqlRowSetを使用して、他のテーブルからデータを読み取ります。問題は、少なくとも1.5では、SqlRowSetクラスにバイト配列/ blobを読み取る方法がないことです。 int、double、文字列、ブール値、オブジェクト、さらにはバイトを読み取ることはできますが、バイト配列は読み込めません。

私はバイト配列を読むことができるレコードセット/行セットの別のタイプにSqlRowSetを変換する方法はありますか?それとも私が気付いていない別の方法がありますか?

私たちが持っているコードのいくつかを試してみることもできますが、あなたが見たいと思っているものはわかりません。

ありがとう、

+1

あなたはプレーンなJDBCに春から切り替えたい場合は、この質問を見て:https://stackoverflow.com/questions/13564378/spring-get-resultsset-from-query – localghost

+0

私はこのリンクを愛します。 Basuの答えは、最終的に私の問題を解決するかもしれないように見えますが、これを標準のResultSetまたはRowSetに変換する方法も見ていきます! –

答えて

1

次のようなものは使用できませんか?

Blob obj = (Blob) rowSet.getObject("columnLabel"); 
+0

ブロブはJava 1.7で導入されているので、ブロブにキャストできません。しかし、あなたの提案に基づいて私はこれを行うことができるかもしれません: byte [] obj =(byte [])rowSet.getObject( "columnLabel"); コンパイラはそれについて不平を言っていません...それがうまくいくかどうか分からない、私はクライアントのサーバーへのアクセスを取得するとすぐにWebサービスをテストしようとします。ありがとう! –

+1

これは本当ですか? https://docs.oracle.com/javase/1.5.0/docs/api/java/sql/Blob.html – localghost

+0

あなたは正しいです。私はクラスにエラーが見つかりませんでした。ドキュメンテーションを調べると、Java SE 7のタイトルが表示されます。しかし、私がそれを見たとき、それは1.2よりも利用可能であることが分かりました!インターフェイスをインポートしましたが、今すぐ動作するように見えます! ありがとう、私はこれを試してみます私はそれが動作すると思う!私はすぐにBasuの答えをupvoteし、私はこれをテストできるようにすぐに受け入れられた答えとしてマークします! –

関連する問題