jdbc-获取表名

在协作开发过程,特别是跨公司合作开发中,表的设计方和使用方完全不同。有时你需要知道表的结构,由于种种原因,一时无法得知表设计信息。

现在JDBC的ResultSetMetaData对象可以帮你获取表的信息。

ResultSetMetaData是ResultSet接口的成员,提供了获取表字段的方法。

常见的方法有:

方法 说明
getColumnCount() 获取总字段数据
getTableName(1) 获取表名
getColumnName(i) 获取指定列字段名,该字段在表内的名称
getColumnTypeName(i) 获取指定列字段数据类型
getTableName(i) 获取指定列字段标签,SQL语句中要求的该字段的名称
getSchemaName(i) 获取指定列字段数据库模式
getPrecision(i) 获取指定列字段小数点前几位
getScale(i) 获取指定列字段小数点后几位
getColumnDisplaySize(i) 获取指定列字段字段长度
isAutoIncrement(i) 获取指定列字段是否自动递增
isNullable(i) 获取指定列字段是否允许空值
下面的示例演示了获取表字段的用法。

public static void main(String[] args) {
String url = “jdbc:mysql://127.0.0.1:3306/northwind”;
String user = “northwind”;
String password = “northwind”;

try (Connection connection = DriverManager.getConnection(url, user, password)) {
    PreparedStatement statement = connection.prepareStatement("SELECT * FROM employees;");
    ResultSet rs = statement.executeQuery();
    //从ResultSet对象中获取ResultSetMetaData对象
    ResultSetMetaData meta = rs.getMetaData();
      
    int cols = meta.getColumnCount();

    System.out.println("总列: " + cols);
    System.out.println("表名: " + meta.getTableName(1));

    System.out.println();

    for (int i = 1; i <= cols; i++) {
        System.out.println("字段名: " + meta.getColumnName(i));
        System.out.println("数据类型: " + meta.getColumnTypeName(i));
        System.out.println("标签: " + meta.getTableName(i));
        System.out.println("数据库模式: " + meta.getSchemaName(i));
        System.out.println("小数点前几位: " + meta.getPrecision(i));
        System.out.println("小数点后几位: " + meta.getScale(i));
        System.out.println("字段长度: " + meta.getColumnDisplaySize(i));
        System.out.println("是否自动递增:" + meta.isAutoIncrement(i));
        System.out.println("是否允许空值:" + meta.isNullable(i));
        System.out.println();
    }

} catch (SQLException e) {
    e.printStackTrace();
}

}

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值