2014-07-09 40 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,你能举个例子吗? –

相关问题