Java如何使用ResultSetMetaData获取表的列名?

本示例说明如何使用ResultSetMetadata该类来获取所选表的列数和列名。该ResultSetMetaData班还可以用于获取列类型及其属性。

使用此类可以帮助您创建一个查询程序,在该程序中您不具有有关表列的所有信息。

package org.nhooo.example.jdbc;

import java.sql.*;

import java.util.ArrayList;

public class MetadataColumnExample {

    private static final String URL = "jdbc:mysql://localhost/nhooo";

    private static final String USERNAME = "root";

    private static final String PASSWORD = "";

    public static void main(String[] args) throws Exception {

        try (Connection connection =

                 DriverManager.getConnection(URL, USERNAME, PASSWORD)) {

            // 在下面的语句中,我们将从用户中选择所有记录

            // 表,然后尝试查找它具有的所有列。

            Statement statement = connection.createStatement();

            ResultSet resultSet = statement.executeQuery(

                "SELECT * FROM books");

            // ResultSetMetaData是所有元数据相关的地方

            // 存储结果集的信息。

            ResultSetMetaData metadata = resultSet.getMetaData();

            int columnCount = metadata.getColumnCount();

            // 为了获得列名,我们对多个列进行循环

            //计数返回上面。并且请记住JDBC操作

            // 是1索引的,因此每个索引都从1开始而不是数组中的0。

            ArrayList<String> columns = new ArrayList<>();

            for (int i = 1; i < columnCount; i++) {

                String columnName = metadata.getColumnName(i);

                columns.add(columnName);

            }

            // 稍后,我们使用收集的列名称来获取的值

            // 它自己的列。

            while (resultSet.next()) {

                for (String columnName : columns) {

                    String value = resultSet.getString(columnName);

                    System.out.println(columnName + " = " + value);

                }

            }

        } catch (SQLException e) {

            e.printStackTrace();

        }

    }

}

我们上面的示例生成的一些结果是:

isbn = 9781617291999

title = Java 8 in Action

published_year = 2015

Maven依赖

<!-- https://search.maven.org/remotecontent?filepath=mysql/mysql-connector-java/8.0.17/mysql-connector-java-8.0.17.jar -->

<dependency>

    <groupId>mysql</groupId>

    <artifactId>mysql-connector-java</artifactId>

    <version>8.0.17</version>

</dependency>

以上是 Java如何使用ResultSetMetaData获取表的列名? 的全部内容, 来源链接: utcz.com/z/321430.html

回到顶部