2014-07-09 67 views
0

我要的是讓所有的都成,我在查詢調用從Java到SQL Server列中的值,我覺得是這樣的:如何從Java中的sqlQuery獲取表列的所有值?

public ArrayList createArray(ResultSet data){ 
    try { 
     ArrayList arrayData = (ArrayList) data.getArray(1);//get all the data from the resultSet that's into the column 1 
     return arrayData; 
    } catch (SQLException ex) {/*Error message*/return null;} 
} 

但實際上我不知道是什麼做getArray()返回,我沒有找到任何有關它的信息。 如果有人能幫助,我會很感激。 另外,如果getArray()不能像我認爲的那樣工作,請告訴我如何去做我想要的?

+0

這是你的代碼?如果它是你的代碼,你怎麼不知道getArray在這裏返回什麼? –

+0

你可以發佈你的代碼,這是相關的如何檢索數據? –

+0

我只想要從查詢中調用的第一列數據,所以這就是它應該返回,但我需要的是要知道getArray做什麼?,我的意思是我創建的代碼,但只是假設getArray返回所有從列 –

回答

0

嘗試是這樣的:

List list = new ArrayList(); 
while (resultSetObject.next()) { 
    list.add(resultSetObject.getString("columnName")); 
} 

你可以把它轉換成字符串數組,如果你想,我認爲是沒有必要的

String[] arrOfString = (String[]) list.toArray(new String[list.size()]); 
+0

是的,我已經有這樣的,但無論如何感謝:) –

0

下面是標準的JDBC方式,這需要大量的樣板代碼和臨時變量,同樣的事情有更優雅的附加庫,jdbi,它可以讓你使用更簡單流暢的API:

jdbi方法:

public static List<String> jdbiEmployeeNameQuery(Handle h) { 
    return h.createQuery("select name from employees order by id").map(StringMapper.FIRST).list(); 
} 

JDBC方式:

public static List<String> jdbcEmployeeNameQuery(Connection dbConnection) throws SQLException { 
    try (Statement s = dbConnection.createStatement()) { 
     try (ResultSet rs = s.executeQuery("select name from employees order by id")) { 
      List<String> names = new ArrayList<String>(); 

      while (rs.next()) { 
       names.add(rs.getString(1)); 
      } 

      return names; 
     } 
    } 
} 
+0

jdbc中有沒有類似的東西? –

+0

是的,直接JDBC只涉及大量的樣板代碼。 – clay

+0

:s,你能舉個例子嗎? –

相關問題