簡體   English   中英

使用Object []方法返回數組

[英]Returning Array with Object[] method

我有一種方法應該使用從數據庫中收集的數據填充JComboBox,但是我看到能夠從數據庫中獲取信息的唯一方法是在Array中。 在完全編譯程序之前,需要將數組轉換為object []。 有什么實際方法嗎? 還是這將是一個漫長的過程? 我的代碼如下。

public Object[] getId() {
  Connection con;
  Statement stmt;
  ResultSet rs;

  //Object[] returnId;
  Array returnId;
  try {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    con = DriverManager.getConnection("jdbc:odbc:collegesys","root","0blivi0n");

    stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
    rs = stmt.executeQuery("SELECT `id` FROM main");

    while(rs.next()) {
      returnId = rs.getArray("id");
    }

    con.close();
  } catch(Exception e) {
    e.printStackTrace();
  }
  return returnId.toObject();
}

嘗試這個:

 
 
 
  
  return (Object[]) returnId.getArray();
 
  

我收集到您想從表main所有行中收集"id"列的值。 您的代碼無法按照組織的那樣進行。 嘗試以下方法:

public Object[] getId() {
  Connection con;
  Statement stmt;
  ResultSet rs;

  //Object[] returnId;
  ArrayList<Object> returnId = new ArrayList<Object>();
  try {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    con = DriverManager.getConnection("jdbc:odbc:collegesys","root","0blivi0n");

    stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
    rs = stmt.executeQuery("SELECT `id` FROM main");

    while(rs.next()) {
      returnId.add(rs.getObject("id"));
    }

    con.close();
  } catch(Exception e) {
    e.printStackTrace();
  }
  return returnId.toArray(new Object[returnId.size()]);
}

當然,如果您對id列中的數據類型有更好的了解,則可以更詳細地了解返回類型以及如何獲取值(例如String[]rs.getString("id")Integer[]rs.getInt("id") )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM