[英]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.