我正在开发一个使MySQL数据库更简单的程序。现在我必须创建表单来添加和编辑数据库中表的数据。问题是,当我创建表单时,我不想显示自动递增列的字段。我只需要修复此列的名称,但我不知道如何找到自动增量列的名称。我试过查找答案,但我找到的只是找到自动生成密钥的信息。有人可以帮助我或指出我正确的方向吗?谢谢你的帮助。
更新 谢谢您的帮助。根据下面的答案,我想出了这个方法:
public Vector<String> getAutoIncrementedColumns(String table) {
Vector<String> columnNames = new Vector<String>();
Connection connection;
try {
connection = DriverManager.getConnection(getUrl(), getUser(),
getPassword());
Statement statement = connection.createStatement();
ResultSet result = statement.executeQuery("Select * from "+table);
int columnCount = result.getMetaData().getColumnCount();
for(int i = 1; i <=columnCount; i++){
if(result.getMetaData().isAutoIncrement(i)){
columnNames.add(result.getMetaData().getColumnName(i));
}
}
} catch (SQLException e) {
e.printStackTrace();
}
return columnNames;
}
答案 0 :(得分:4)
获得ResultSet
后,您可以调用其getMetaData
方法获取ResultSetMetaData对象。从那里,您可以使用isAutoIncrement
方法确定列是否为AUTO_INCREMENT列,并使用getColumnName
来获取列的名称。
答案 1 :(得分:1)
EXTRA
表的INFORMATION_SCHEMA.COLUMNS
列应该包含此信息。
答案 2 :(得分:0)
答案 3 :(得分:0)
如果您可以访问架构information_schema
,则可以从表中获取这些信息