JDBC中获取数据表的信息

转载 2007年09月24日 16:32:00
JDBC中通过MetaData来获取具体的表的相关信息。可以查询数据库中的有哪些表,表有哪些字段,字段的属性等等。MetaData中通过一 系列getXXX函数,将这些信息存放到ResultSet里面,然后返回给用户。关于MetaData的说明网上也有不少,这里我只是从我自身学习的角 度来记录一下简单使用JDBC以及获取数据表相关信息的方法。

   首先,http://hometown.aol.com/kgb1001001/Articles/JDBCMetadata/JDBC_Metadata.htm 这里有篇名字叫做《Understanding JDBC MetaData》的文章,讲解得不错。

   下面就是我的JDBC下的获取表信息的代码了。我是以MySQL 5.0作为测试平台的。

   1. JDBC连接MYSQL的代码很标准,很简单。

   class.forName("com.mysql.jdbc.Driver").newInstance();
   Connection conn = DriverManager
     .getConnection("jdbc:mysql://localhost/test?user=root&password=123456");

   2. 下面就是获取表的信息。

    m_DBMetaData = m_Connection.getMetaData();
    ResultSet tableRet = m_DBMetaData.getTables(null, "%",m_TableName,new String[]{"TABLE"});
    其中"%"就是表示*的意思,也就是任意所有的意思。其中m_TableName就是要获取的数据表的名字,如果想获取所有的表的名字,就可以使用"%"来作为参数了。

   3. 提取表的名字。

   while(tableRet.next) System.out.println(tableRet.getString("TABLE_NAME"));

 通过getString("TABLE_NAME"),就可以获取表的名字了。
 从这里可以看出,前面通过getTables的接口的返回,JDBC是将其所有的结果,保存在一个类似table的内存结构中,而其中TABLE_NAME这个名字的字段就是每个表的名字。

  4. 提取表内的字段的名字和类型

  String columnName;
  String columnType;
  ResultSet colRet = m_DBMetaData.getColumns(null,"%", m_TableName,"%");
  while(colRet.next()) {
   columnName = colRet.getString("COLUMN_NAME");
   columnType = colRet.getString("TYPE_NAME");
   int datasize = colRet.getInt("COLUMN_SIZE");
   int digits = colRet.getInt("DECIMAL_DIGITS");
   int nullable = colRet.getInt("NULLABLE"); 
   System.out.println(columnName+" "+columnType+" "+datasize+" "+digits+" "+
     nullable);
  }

  JDBC里面通过getColumns的接口,实现对字段的查询。跟getTables一样,"%"表示所有任意的(字段),而m_TableName就是数据表的名字。

  getColumns 的返回也是将所有的字段放到一个类似的内存中的表,而COLUMN_NAME就是字段的名字,TYPE_NAME就是数据类型,比如"int","int unsigned"等等,COLUMN_SIZE返回整数,就是字段的长度,比如定义的int(8)的字段,返回就是8,最后NULLABLE,返回1就 表示可以是Null,而0就表示Not Null。

 

JDBC获取数据表字段名、注释等信息

JDBC获取数据表字段名、注释等信息 需求:给定数据库信息和表名,扫描表的字段名、字段类型和注释。 注:数据库可以是Oracle、Mysql、DB2、SqlServer等。 解决...

批量获取oracle数据表记录信息

  • 2010年09月02日 11:23
  • 304KB
  • 下载

MySQL---数据库从入门走向大神系列(十一)-Java获取数据库/结果集的元信息、将数据表写入excel表格

数据库的元信息:首先介绍一下数据库的元信息(元数据):元数据(Metadata)是关于数据的数据。元数据是描述数据仓库内数据的结构和建立方法的数据。存储的数据是什么类型,什么驱动等等,这些描述数据的数...

使用存储过程和反射获取从多个数据表所需信息

本文介绍如何使用存储过程和读取范式化数据库获取所需信息的技术,使用到的技术有:存储过程,反射。 此技巧适用于与多处连表(大量JOIN)的场景。 对于单表操作,建议使用UnitOfWork+Reposi...

【数据库】获取pg的数据表及字段信息

select * from pg_tables where schemaname='public'; select * from information_schema.columns where ta...
  • cdnight
  • cdnight
  • 2014年01月08日 15:29
  • 4713

三级联动下拉框,获取省市区信息(内附Oracle城市三级联动数据表)

Oracle省市区三级联动数据表 欢迎使用Markdown编辑器写博客Oracle省市区三级联动表:https://pan.baidu.com/s/1pK8TvSZ使用环境,楼主使用B-JUI前段框架...

jdbc获取数据库字段信息

  • 2014年05月04日 09:04
  • 41KB
  • 下载

JDBC 通过从properties配置文件获取信息得到orcale数据库接口

JDBC 通过从properties配置文件获取信息得到orcale数据库接口

使用JDBC获取各数据库的Meta信息——表以及对应的列

先贴代码,作为草稿:第一个shi
  • renfufei
  • renfufei
  • 2014年10月14日 15:32
  • 16813
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JDBC中获取数据表的信息
举报原因:
原因补充:

(最多只允许输入30个字)