0

我有几个问题java.sql.*

1)如何获取表中所有列的类型列表?现在我确实要求

SELECT data_type FROM information_schema.columns
WHERE  information_schema.columns.table_name = 'TableName';

如何使用 Java 做同样的事情?我想与演讲者的名字,会是相似的。

2)但尚不清楚如何定义列属性:NULL / NOT NULL,PRIMARY KEY等。

3)一个单独的问题SERIAL:获取类型时,此列返回INT并且无法处理。有区分SERIAL列的方法吗?

感谢您的理解。

4

1 回答 1

0

您可以使用DatabaseMetaData.getColumns()查询表中的列。

根据您获取以下数据的愿望TableName

DatabaseMetaData dbmd = connection.getMetaData()
try (ResultSet columns = dbmd.getColumns(null, null, "TableName", "%")) {
    while(columns.next()) {
        // get the info from the resultset (eg the java.sql.Types value):
        int dataType = columns.getInt("DATA_TYPE");
    }
}

to 的参数getColumnsLIKE-patterns,这就是最后一个参数 ( columnPattern) 获取值的原因"%"。可以从列中检索可空性,并且可以从列中检索NULLABLE有关IS_NULLABLE序列的信息IS_AUTOINCREMENT,请参阅文档以获取详细信息。要查找主键,您可以使用DatabaseMetaData.getPrimaryKeys().

有关更多信息,请查看 javadoc,它非常详细。

于 2013-07-27T17:48:54.593 回答