public static DefaultTableModel localQuery(String searchTerm){
List<String[]> result = new ArrayList<String[]>();
String[] rowResult = new String[7];
Vector<String[]> rows = new Vector<String[]>();
Vector<String> columnNames = new Vector<String>();
Statement stmt = null;
try {
stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(searchTerm);
while(rs.next()){
rowResult = new String[13];
String currentId= rs.getString("CurrentId");
String manufacturer = rs.getString("Constructor");
String type = rs.getString("ACType");
String series = rs.getString("Series");
String index = rs.getString("KeyNo");
String operator = rs.getString("Operator");
String baseCountry = rs.getString("Home_Country");
String baseAirport = rs.getString("Home_Airfield");
String cn = rs.getString("Con");
String lineNo = rs.getString("LineNum");
String hex = rs.getString("Hexcode");
String selcal=rs.getString("Selcal");
String acName = rs.getString("ACName");
rowResult[0] = (currentId);
rowResult[1] = (manufacturer);
rowResult[2] = (type);
rowResult[3] = (series);
rowResult[4] = (operator);
rowResult[5] = (baseCountry);
rowResult[6] = (baseAirport);
rowResult[7] = (cn);
rowResult[8] = (lineNo);
rowResult[9] = (hex);
rowResult[10] = (selcal);
rowResult[11] = (acName);
rowResult[12]= (index);
result.add(rowResult);
}
columnNames.add("Reg.");
columnNames.add("Manufacturer");
columnNames.add("Type");
columnNames.add("Series");
columnNames.add("Operator");
columnNames.add("Home Country");
columnNames.add("Home Airfield");
columnNames.add("C/N");
columnNames.add("Line #");
columnNames.add("Hex");
columnNames.add("Selcal");
columnNames.add("Aircraft Name");
columnNames.add("");
rs.close();
stmt.close();
//Convert from List<String[]> to a suitable vector for resultTable... Help!!!
DefaultTableModel resultTable = new DefaultTableModel(rows, columnNames);
return resultTable;
}嗨!我正在尝试这个方法来返回一个DefaultTableModel,以便在JTable上使用。我很难将从数据库中提取的数据格式化为一个模型友好的格式。放松点,这是我的第三天任何类型的编程!
(预先谢谢:)
发布于 2014-03-07 07:57:23
ResultSetMetaData←API链接动态获取列标题。
ResultSetMetaData rsMeta = resultSet.getMetaData();int numberOfCols = rsMeta.getColumnCount();向量columnNames =新Vector<>();//您的列名为(int i= 1;i <= numberOfCols;i++ ){ columnsNames.add(rsMeta.getColumnName(i));}Vector或List。首先使用构造函数参数( Vector/Object[] colNames, int rows)声明您的( Vector/Object[] colNames, int rows)。然后,只需使用来自DefaultTableModel的方法DefaultTableModel
DefaultTableModel模型=新DefaultTableModel(columnNames,0);while (resultSet.next()) { String data1 = resultSet.getString(1);String data2 = resultSet.getString(2);.Object[] rowData =新Object[] { data1,data2,…};model.addRow(rowData);}返回模型;while循环中使用Vector,并遍历列数据。
DefaultTableModel模型=新DefaultTableModel(columnNames,0);resultSet.next(()){向量行=新Vector<>();for (int I= 1;i <= numberOfCols;i++) { row.add(resultSet.getString(i));}model.addRow(行);}返回模型;查看更多方法和构造函数(参见DefaultTableModel API )
https://stackoverflow.com/questions/22238641
复制相似问题