Java UCanAccess/ResultSetMetaData/getColumnName()随机返回列的名称
我有一个关于getColumnName()方法的问题。我在UCanAccess库中使用它。我试图获取列名,并将其完全按照MS Access DB中的方式放在表中。但我有随机顺序。也许有人知道我错了什么 对于测试,我将delete添加到表中,并实现了打印 代码是:Java UCanAccess/ResultSetMetaData/getColumnName()随机返回列的名称,java,database,ms-access,jdbc,ucanaccess,Java,Database,Ms Access,Jdbc,Ucanaccess,我有一个关于getColumnName()方法的问题。我在UCanAccess库中使用它。我试图获取列名,并将其完全按照MS Access DB中的方式放在表中。但我有随机顺序。也许有人知道我错了什么 对于测试,我将delete添加到表中,并实现了打印 代码是: public class Connections { private final String dbUrl="jdbc:ucanaccess://C:/Users/Admin/Desktop/DB.accdb"; private fi
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;
}
}
在访问时,我有如下命令:
1) 伊德鲁兹尼克
2) 纳兹维斯科
3) 伊米
4) miejsce_urodzenia
5) 普莱克
6) 威克
但在控制台中(运行后),我得到:
1) 纳兹维斯科
2) 伊米
3) miejsce_urodzenia
4) 威克
5) 普莱克
6) 伊德鲁兹尼克
为什么我会得到列名称的其他顺序?我猜这是db表创建时列的顺序。不要从tablename中选择*,而是尝试按所需顺序列出列。。如FilipczakTry的select id_dluznik、nazwisko、Imie、miejsce_urodzenia、plec、wiek添加
;columnOrder=DISPLAY
到连接URL的末尾。Balaji Krishnan-我将对不同的表使用此方法,因此我无法直接写入列的名称。Gord Thompson-您的建议解决了问题。谢谢你可能的副本
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());
}