2013-10-22 84 views
0

當編寫一個程序,從數據庫中提取記錄,代碼可能如下所示:使用固定索引獲取列?

private static final int IDX_A = 1; 
private static final int IDX_B = 2; 
.... 

resultSet.getInt(IDX_A); 
resultSet.getInt(IDX_B); 
.... 

如果我們有很多的列去取,我們有太多的索引。所以另一種實施方式是:

int idx = 0; 
resultSet.getInt(++idx); 
resultSet.getInt(++idx); 
.... 

對於速度考慮,我認爲第一個更好。但爲了維護,我認爲後者更好。

如果我們有很多列,哪一個更好?謝謝。

+0

我肯定會去後者。 – christopher

+0

沒有通過列名獲得更好的值? – Nishan

回答

3

在這種情況下,您可以完全忘記速度的考慮因素:您正在調用數據庫,因此在您的代碼中花費的額外幾微秒毫無意義。

我首選的方案是以下幾點:

private static final String COLUMN_A = "ColumnA"; 
private static final String COLUMN_B = "ColumnB"; 

resultSet.getInt(COLUMN_A); 
resultSet.getInt(COLUMN_B); 

這避免了當你查詢的變化和列添加到SELECT子句越來越推出的bug。

更好的是,使用JPA。