UCanAccess / ResultSetMetaData / getColumnName()随机返回列的名称

时间:2017-04-10 13:03:41

标签: java database ms-access jdbc ucanaccess

我对getColumnName()方法有疑问。我在UCanAccess库中使用它。我正在尝试获取列名并将其放在表中,就像它们在MS Access DB中一样。但是我得到随机顺序。 Mayby有人知道我的错误是什么吗?

对于测试,我删除了添加到表格并实现了打印。

代码是:

public class Connections {

private final String dbUrl="jdbc:ucanaccess://C:/Users/Admin/Desktop/DB.accdb";
private final String user="";
private final String password="";

public Statement conecting(){
    Statement stat=null;
    try{
        Connection connection=DriverManager.getConnection(dbUrl,user,password);             
        stat=connection.createStatement();          
    }
    catch(SQLException exc){
        exc.printStackTrace();
    }
    return stat;
}
public String[] prepearedNamesOfColumns(String nameOfTable, Statement stat) throws SQLException{
    String[] result=null;
    ResultSet res=stat.executeQuery("select*from "+nameOfTable);
    ResultSetMetaData rsmd=res.getMetaData();
    int columnCount=rsmd.getColumnCount();
    for(int i=1; i<=columnCount;i++){
        System.out.println(rsmd.getColumnName(i));
    }
    return result;
}

主要课程:

public class Demonstration {

public static void main(String[] args) throws SQLException {    
    Connections operacje= new Connections();
    String[] tab=new String[6];
    tab[0]="dluznicy";
    tab[1]="Filipczak";
    tab[2]="Karol";
    tab[3]="Poznań";
    tab[4]="M";
    tab[5]="34";
    String[] wynik=operacje.prepearedNamesOfColumns(tab[0], operacje.conecting());      
}

}

在Access我有这样的订单: 1)id_dluznik 2)nazwisko 3)伊米 4)miejsce_urodzenia 5)plec 6)wiek

但在控制台(运行后)我得到: 1)nazwisko 2)IMIE 3)miejsce_urodzenia 4)wiek 5)PLEC 6)id_dluznik

为什么我会获得列名的其他顺序?

0 个答案:

没有答案