2012-11-19 71 views
0

我使用MySQL的開發環境,但我的應用程序可以對臨時環境的SQLServer。什麼是首選使用record.getAttribute或record.getAttributeAsTYPE?

在我的數據庫,布爾(boolean)的紀錄VARCHAR,整數(int)的紀錄VARCHAR了。

是方法record.getAttributeAsTYPE像getAttributeAsBoolean(java.lang.String)適當/一定要使用?還是使用類似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可以比java.lang.Booleanjava.lang.Integer接近java.lang.String。所以我認爲在這些例子中「解決方案2」更確定。

回答

1

這要看情況。如果您完全確定該屬性的值是您所需的類型,則應該使用getAttributeAsTYPE()。您的數據源(如果您使用ds.xml)如何定義該字段?它可能會被smartGWT隱式轉換。 (例如:record.setAttribute(「COLUMN_NAME」,「12345」),調用record.getAttributeAsInt(「COLUMN_NAME」)可能會失敗,出現類型異常。在這種情況下,只能實例化Integer或將其靜態轉換:Integer.parseInt(recrod.getAttribute())。

getAttributeAsTYPE非常方便,我儘可能多地使用它,但是您必須確保該值是正確的類型時被設置。

+0

精確,對我來說'VARCHAR'更像是'java.lang.String'。 – Manu

相關問題