2011-07-14 6 views
4

JDBCコールから生成された結果セットに基づいて、通常は整数を含むデータベース列の値を解析する必要があります。しかしながら、列の1つの特定の行は、その中に2つの整数(すなわち、「48,103」)を有する。その列のresultSet.getInt()の戻り値は何ですか?resultSet.getInt()2つのintを含む文字列の戻り値

+0

データベース内のカラムの定義とは何か - 何らかの 'varchar'ですか? –

+0

あなたはそれをテストしようとしましたか? –

+0

Eng.Fouad - 私は現在、それを直ちにテストするのを止めている他のいくつかの問題を解決しています。最初にここで尋ねて曲線を先取りしようとしています。 – DaveWeber

答えて

5

例外をスローします。

ここで間違ったアプローチをしていると思います。 getXXX()は、テーブルのデータ型と一致するはずです。表のデータ型はVARCHARとしてリストされていますか?その場合はgetString()を使用してデータを取得し、,が存在する場合はString.spilt(",")で解析してください(String.indexOf()を使用するとカンマがあるかどうかを確認できます)。

+0

これは正しいと思います。フィードバックをありがとう - 私はいくつかの既存のコードを更新しているので、おそらくgetIntは列内の1つの値だけを扱っていることを知っていたときに働いていました。 – DaveWeber

+0

@DaveWeber - あなたは大歓迎です。あなたはテーブルのスキーマを見るためのアクセス権を持っていますか?データ型がそこにリストされているものを検証します。 – CoolBeans

+0

私はアクセスする必要があります(これはsyscolumnsテーブルです)。後で実行しようとします。ご協力いただきありがとうございます。 – DaveWeber

1

私はそれが例外をスローすると思います。それがあなたに価値を与えるなら、それはあなたが望むものではありません。私は文字列として値を取得し、それらを解析し、カンマで区切り、スペースをトリミングします。

4

ほとんどの場合、確かにSQLException(またはおそらくNumberFormatException)が表示されます。実際のinterfaceは、結果セットが "指定された列の値を... int"として返すと言うだけです。正確な詳細は実装固有のものですが、"48, 103"の値から分かりやすいものは得られません。

(個人的には、たとえドライバーがgetIntを呼び出すことができればエラーではないかと思います。たとえ文字列がintの文字列表現であっても、文字列はintではありません。変換は開発者が手動で行う必要があります)。

+0

です。SQLExceptionsはデータベースアクセスエラー時にのみ発生するため、NumberFormatの可能性が高いと思います。それは価値をうまくつかんでいる、それは数を解析することと単なる問題である。しかし、私はあなたがテキスト列に取り組んでいないgetInt部分について正しいと思います。 –

+0

これは多くの意味があります。フィードバックをお寄せいただきありがとうございます。 – DaveWeber

0

私はそれがNumberFormatExceptionと信じています。

関連する問題