Как получить объект Table с его именем (как String) в Jackcess
Я начинаю с java и jackcess, у меня есть этот код
public class DataManagement {
static Database db;
static Database dbopen;
static Table Users;
static Set<String> tablename;
static String[] nametabla;
public static void opendatabase(){
try {
dbopen=DatabaseBuilder.open(new File("D:/alex.accdb"));
tablename=dbopen.getTableNames();
nametabla = tablename.toArray(new String[0]);
} catch (IOException e) {
e.printStackTrace();
}
}
public static void readtabla (String name){
System.out.println(name);
for(Column column : name.getColumns()) {
String columnName = column.getName();
System.out.println(columnName + " " );
}
}
public static void main(String[] args){
/*opening an existing database*/
opendatabase();
System.out.println("the name of tables are " + tablename);
System.out.println("the name of table 2 is " + nametabla[1]);
readtabla(nametabla[1]);
}
}
без "для" внутри метода readtabla я получаю это
the name of the tables are [Establecimiento, Estado, Medición, Ubicación]
the name of table 2 is Estado
Estado
проблема лежит здесь
for(Column column : name.getColumns())
потому что имя должно быть (я думаю) тип таблицы, и я отправляю его как строковый тип, так как я могу преобразовать строковый тип в табличный тип? или есть другой способ? заранее спасибо
2 ответа
Решение
Вы можете использовать getTable()
Метод объекта Database для возврата объекта Table:
public static void readtabla (String name) {
System.out.println(name);
Table tbl;
try {
tbl = dbopen.getTable(name);
for(Column column : tbl.getColumns()) {
String columnName = column.getName();
System.out.println(columnName + " " );
}
} catch (IOException e) {
e.printStackTrace();
}
}
Вы можете использовать jackcess-orm для манипулирования только Java POJO