JDBC中获取数据表的信息

摘自:http://blog.chinaunix.net/uid-145458-id-2799926.html

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。

时间: 2024-10-29 19:08:03

JDBC中获取数据表的信息的相关文章

使用JDBC connect获取数据库表结构信息

1.这是生成代码的关键 引入maven依赖 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.30</version> </dependency> 2.编写JAVA类 package com.yyj.mybties.jdbc; import java.sql.Conne

是用JDBC从数据库中获取数据并以java对象返回

/** * * @param c * for example Person.class * @param primaryKeys * primaryKeys为主键,参数顺序和表中保持一致 如果id, name 为主键 类名为Person 则 getEntity(Person.class,1,"name") * @return */ public static Object getEntity(Class c, Object... primaryKeys) { PreparedState

hive从查询中获取数据插入到表或动态分区

(前人写的不错,很实用,负责任转发)转自:http://www.crazyant.net/1197.html Hive的insert语句能够从查询语句中获取数据,并同时将数据Load到目标表中.现在假定有一个已有数据的表staged_employees(雇员信息全量表),所属国家cnty和所属州st是该表的两个属性,我们做个试验将该表中的数据查询出来插入到另一个表employees中. 1 2 3 4 INSERT OVERWRITE TABLE employees PARTITION (cou

MySql 获取数据表中随机一条数据

通过sql语句获取数据表中的随意一条数据 -- rand() 获取0到1之间的随机浮点数 -- ((select max(id) from test) - (select min(id) from test)) * rand() 获取到随机数 -- + (select min(id) from test) 保证id为 最小ID与最大ID之间的数 select * from test where id >= ((select max(id) from test) - (select min(id)

获取数据表中列的描述值

原文:获取数据表中列的描述值 前面有写过<MS SQL为字段添加说明>https://www.cnblogs.com/insus/p/12106589.html 现如今,我们获取这些字段的描述值. 先来看一句SELECT语句: SELECT * FROM sys.extended_properties GO Source Code 如上SQL语句,虽然得到描述的值,但我们不清楚是哪一张表,和哪一个字段的说明. 因此,得使用系统另外对象来关联查询: SELECT t.[name] AS [Tab

获取数据表列相关数据

原文:获取数据表列相关数据 虽然本人在开发数据库时,不太使用视图,但是还是知道 如何获取视图中使用的所有表列: SELECT * FROM INFORMATION_SCHEMA.VIEW_COLUMN_USAGE 如何获取包含视图所有表: SELECT * FROM INFORMATION_SCHEMA.VIEW_TABLE_USAGE 获取包含有任何约束的所有列: SELECT TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME FROM INFORMATION_SC

python从淘宝ip库中获取公网ip的信息

看到一个题目:  从ip.taobao.com中获取公网ip的信息 分析: 1.生成公网IP地址: 2.根据ip.taobao.com返回的代码,用json解析 下面是淘宝的接口说明 ''' 接口说明 1. 请求接口(GET): http://ip.taobao.com/service/getIpInfo.php?ip=[ip地址字串] 2. 响应信息: (json格式的)国家 .省(自治区或直辖市).市(县).运营商 3. 返回数据格式: {"code":0,"data&q

volley源码解析(四)--CacheDispatcher从缓存中获取数据

从上一篇文章我们已经知道,现在要处理的问题就是CacheDispatcher和NetworkDispatcher怎么分别去缓存和网络获取数据的问题,这两个问题我分开来讲. 但是首先说明的是,这两个问题其实是有联系的,当CacheDispatcher获取不到缓存的时候,会将request放入网络请求队列,从而让NetworkDispatcher去处理它: 而当NetworkDispatcher获得数据以后,又会将数据缓存,下次CacheDispatcher就可以从缓存中获得数据了. 这篇文章,就让

关于Artdialog插件中获取内部表单元素值的使用心得

在开发中既需要artdialog插件的美观大方,又需要自定义功能,所以就出现了以下情况(废话不多说,转入正题) 前台代码: 1 <input type="button" class="ontest" value="免费询盘"/> 2 <div style="display:none;clear:both;"> 3 <table> 4 <tr> 5 <td>姓名:<