java获取Oracle和access数据库结构

第一步,获取access所有表名

1.

List list = new ArrayList();
DatabaseMetaData dbmd=Conn.getMetaData();

ResultSet rs=dbmd.getTables(null,
null,"%",new String[]{"SYNONYM","TABLE"});
while(rs.next()){

String tableName=rs.getString(3);

}

getTables(Stringcatalog,

StringschemaPattern,

StringtableNamePattern,

String[]types)


参数:

catalog - 类别名称;它必须与存储在数据库中的类别名称匹配;该参数为 "" 表示获取没有类别的那些描述;为 null 则表示该类别名称不应该用于缩小搜索范围

schemaPattern - 模式名称的模式;它必须与存储在数据库中的模式名称匹配;该参数为 "" 表示获取没有模式的那些描述;为 null 则表示该模式名称不应该用于缩小搜索范围

tableNamePattern - 表名称模式;它必须与存储在数据库中的表名称匹配

types - 要包括的表类型所组成的列表,必须取自从 getTableTypes() 返回的表类型列表;null 表示返回所有类型

 

2.获取Oracle所有表名称:

List list = new ArrayList();
DatabaseMetaData dbmd=Conn.getMetaData();

ResultSet rs=dbmd.getTables(null,userName,"%",new String[]{"TABLE"});
while(rs.next()){

String tableName=rs.getString(3);

}

区别就在于(红色标记的部分)。

userName 改数据库的用户名。

第二步,获取某一个表的列名:

DatabaseMetaData dbmt = conn.getMetaData();
ResultSet columnSet = dbmt.getColumns(null, "%", tableName, "%");//oracle

ResultSet columnSet = dbmt.getColumns(null,null, tableName, "%");//access
while(rs.next()){

String columnName = columnSet.getString("COLUMN_NAME");//字段名称(列名)

String fidld_type =columnSet.getString("TYPE_NAME");//字段类型


}

//获得所有列的数目及实际列数
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);

//
某列类型的精确度(类型的长度)

 

 

可以去参考JavaAPI文档有详细的介绍。

你可能感兴趣的:(java获取Oracle和access数据库结构)