fed_lviv написав:...
getTableContents(tableName);// метoд заповнює даними таблицю (jTable)
...
Ось тут детальніше можна?
в методі визначається кількість колонок в таблиці БД та їх типи і заповнюється даними
[code=java]private ArrayList<Object[]> data;
public void getTableContents(String tableName)
throws SQLException {
meta = conn.getMetaData();
rs = meta.getColumns(null, null, tableName, null);// отримати метадані по колонкам
// ArrayList colNamesList = new ArrayList();// список імен колонок
ArrayList colTypesList = new ArrayList();// список типів колонок
// цикл по всім колонкам таблиці
// для кожної колонки визначити імя і тип
while (rs.next()) {
colNamesList.add(rs.getString("COLUMN_NAME"));// добавити в список імя колонок
int dbType = rs.getInt("DATA_TYPE");// визначити тип колонки
// вибрати потрібний тип
switch (dbType) {
case Types.INTEGER:
colTypesList.add(Integer.class);
break;
case Types.FLOAT:
colTypesList.add(Float.class);
break;
//case Types.DOUBLE:
case Types.REAL:
colTypesList.add(Double.class);
break;
case Types.DATE:
case Types.TIME:
case Types.TIMESTAMP:
colTypesList.add(java.sql.Date.class);
break;
default:
colTypesList.add(String.class);
break;
};
}
// імена колонок зберегти в окремий масив columnNames
columnNames = new String[colNamesList.size()];
colNamesList.toArray(columnNames);
for(int n=0; n<columnNames.length; n++){
System.out.println("імена колонок (getTableContents)--"+columnNames[n]);
}
// типи колонок зберегти в окремий масив columnClasses
columnClasses = new Class[colTypesList.size()];
colTypesList.toArray(columnClasses);
Statement statement = conn.createStatement();
rs = statement.executeQuery("SELECT * FROM " + tableName);
ArrayList rowList = new ArrayList(); // зберігає записи із таблиці
// цикл по всим записам таблиці
while (rs.next()) {
ArrayList cellList = new ArrayList();// зберігає дані по кожній колонці (ячейці)
for (int n = 0; n< columnClasses.length; n++) {
Object cellValue = null;
if (columnClasses[n] == String.class) {
cellValue = rs.getString(columnNames[n]);
} else if (columnClasses[n] == Integer.class) {
cellValue = new Integer(rs.getInt(columnNames[n]));
} else if (columnClasses[n] == Float.class) {
cellValue = new Float(rs.getInt(columnNames[n]));
} else if (columnClasses[n] == Double.class) {
cellValue = new Double(rs.getDouble(columnNames[n]));
} else if (columnClasses[n] == java.sql.Date.class) {
cellValue = rs.getDate(columnNames[n]);
} else {
System.out.println("Не можу визначити тип поля " + columnNames[n]);
}
cellList.add(cellValue);
}// for
Object[] cells = cellList.toArray();
data.add(cells);
} // while
if (rs!=null ) rs.close();
if (statement!=null ) statement.close();
System.out.println(" method getTableContents(tableName);");
}[/code]