0

開発環境に MySQL を使用していますが、アプリはステージング環境の SQLServer にある可能性があります。

私のデータベースでは、ブール値 ( boolean) は VARCHAR として記録され整数 ( int) もVARCHARとして記録されます。

getAttributeAsBoolean(java.lang.String)のようなメソッド record.getAttributeAsTYPE は適切ですか? それとも、のようなものを使用する方が良いtype myvar = new TYPE(record.getAttribute("COLUNM_NAME"))ですか?

解決策 1 と 2 の間でどちらを使用するのが良いですか?

例 1 :

boolean mybool = record.getAttributeAsBoolean("COLUNM_NAME"); // Solution 1

boolean mybool = new Boolean(record.getAttribute("COLUNM_NAME")); // Solution 2

例 2 :

int myint = record.getAttributeAsInt("COLUNM_NAME"); // Solution 1

int myint = new Interger(record.getAttribute("COLUNM_NAME")); // Solution 2

私にとっては、またはよりもVARCHAR近いかもしれません。したがって、これらの例では、「解決策 2」の方が確実だと思います。java.lang.Stringjava.lang.Booleanjava.lang.Integer

4

1 に答える 1

1

場合によります。属性の値が必要なタイプであることが確実な場合は、getAttributeAsTYPE() を使用する必要があります。データ ソース (ds.xml を使用している場合) はそのフィールドをどのように定義していますか? smartGWT によって暗黙的に変換される可能性があります。

値が文字列として保存されているようです (例: record.setAttribute("COLUMN_NAME", "12345"))。record.getAttributeAsInt("COLUMN_NAME") を呼び出すと、型例外で失敗する可能性があります。 do は Integer をインスタンス化するか、静的に変換します: Integer.parseInt(recrod.getAttribute())。

getAttributeAsTYPE は便利で、できる限り使用していますが、設定するときに値が正しい型であることを確認する必要があります。

于 2012-11-19T18:30:44.697 に答える