oracle -mysql 获取查询数据字段属性

 

  • DatabaseMetaData 有关整个数据库的信息:表名、表的索引、数据库产品的名称和版本、数据库支持的操作。
  • ResultSet 关于某个表的信息或一个查询的结果。您必须逐行访问数据行,但是您可以任何顺序访问列。 
  • ResultSetMetaData 有关 ResultSet 中列的名称和类型的信息。 

PreparedStatement ps = conn.prepareStatement(sql); 

ResultSet rs= ps.executeQuery(); 

ResultSetMetaData data=rs.getMetaData(); 

for (int i = 1; i <= data.getColumnCount(); i++) {
    
    System.out.println(data.getColumnCount());
          //获得所有列的数目及实际列数
          int?columnCount=data.getColumnCount();
          //获得指定列的列名
          String?columnName?=?data.getColumnName(i);
          //获得指定列的列值
          String?columnValue?=?rs.getString(i);
          //获得指定列的数据类型
          int?columnType=data.getColumnType(i);
          //获得指定列的数据类型名
          String?columnTypeName=data.getColumnTypeName(i);
          //所在的Catalog名字
          String?catalogName=data.getCatalogName(i);
          //对应数据类型的类
          String?columnClassName=data.getColumnClassName(i);
          //在数据库中类型的最大字符个数
          int?columnDisplaySize=data.getColumnDisplaySize(i);
          //默认的列的标题
          String?columnLabel=data.getColumnLabel(i);
          //获得列的模式
          String?schemaName=data.getSchemaName(i);
          //某列类型的精确度(类型的长度)
          int?precision=?data.getPrecision(i);
          //小数点后的位数
          int?scale=data.getScale(i);
          //获取某列对应的表名
          String?tableName=data.getTableName(i);
          //?是否自动递增
          boolean?isAutoInctement=data.isAutoIncrement(i);
          //在数据库中是否为货币型
          boolean?isCurrency=data.isCurrency(i);
          //是否为空
          int?isNullable=data.isNullable(i);
          //是否为只读
          boolean?isReadOnly=data.isReadOnly(i);
          //能否出现在where中
          boolean?isSearchable=data.isSearchable(i);?
    }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值