//对应的;
String isAutoincrement = rs.getString("IS_AUTOINCREMENT");
System.out.println(tableCat + "-"+ tableSchemaName + "-"+ tableName_ + "-"+ columnName + "-"+ dataType + "-"+ dataTypeName + "-"+ columnSize + "-"+ decimalDigits + "-"+ numPrecRadix
+ "-"+ nullAble + "-"+ remarks + "-"+ columnDef + "-"+ sqlDataType + "-"+ sqlDatetimeSub
+ charOctetLength + "-"+ ordinalPosition + "-"+ isNullAble + "-"+ isAutoincrement + "-");
}
} catch(SQLException e){
e.printStackTrace();
}
}
public voidgetIndexInfo(String schemaName, String tableName) {
try{
ResultSet rs = dbMetaData.getIndexInfo(null, schemaName, tableName, true, true);
while(rs.next()){
booleannonUnique = rs.getBoolean("NON_UNIQUE");//非唯一索引(Can index values be non-unique. false when TYPE is tableIndexStatistic )String indexQualifier = rs.getString("INDEX_QUALIFIER");//索引目录(可能为空)String indexName = rs.getString("INDEX_NAME");//索引的名称shorttype = rs.getShort("TYPE");//索引类型shortordinalPosition = rs.getShort("ORDINAL_POSITION");//在索引列顺序号String columnName = rs.getString("COLUMN_NAME");//列名String ascOrDesc = rs.getString("ASC_OR_DESC");//列排序顺序:升序还是降序intcardinality = rs.getInt("CARDINALITY"); //基数System.out.println(nonUnique + "-"+ indexQualifier + "-"+ indexName + "-"+ type + "-"+ ordinalPosition + "-"+ columnName + "-"+ ascOrDesc + "-"+ cardinality);
}
} catch(SQLException e){
e.printStackTrace();
}
}
public voidgetAllPrimaryKeys(String schemaName, String tableName) {
try{
ResultSet rs = dbMetaData.getPrimaryKeys(null, schemaName, tableName);
while(rs.next()){
String columnName = rs.getString("COLUMN_NAME");//列名shortkeySeq = rs.getShort("KEY_SEQ");//序列号(主键内值1表示第一列的主键,值2代表主键内的第二列)String pkName = rs.getString("PK_NAME"); //主键名称System.out.println(columnName + "-"+ keySeq + "-"+ pkName);
}
}catch(SQLException e){
e.printStackTrace();
}
}
public voidgetAllExportedKeys(String schemaName, String tableName) {
try{
ResultSet rs = dbMetaData.getExportedKeys(null, schemaName, tableName);
while(rs.next()){
String pkTableCat = rs.getString("PKTABLE_CAT");//主键表的目录(可能为空)String pkTableSchem = rs.getString("PKTABLE_SCHEM");//主键表的架构(可能为空)String pkTableName = rs.getString("PKTABLE_NAME");//主键表名String pkColumnName = rs.getString("PKCOLUMN_NAME");//主键列名String fkTableCat = rs.getString("FKTABLE_CAT");//外键的表的目录(可能为空)出口(可能为null)String fkTableSchem = rs.getString("FKTABLE_SCHEM");//外键表的架构(可能为空)出口(可能为空)String fkTableName = rs.getString("FKTABLE_NAME");//外键表名String fkColumnName = rs.getString("FKCOLUMN_NAME"); //外键列名shortkeySeq = rs.getShort("KEY_SEQ");//序列号(外键内值1表示第一列的外键,值2代表在第二列的外键)。shortupdateRule = rs.getShort("UPDATE_RULE");
shortdelRule = rs.getShort("DELETE_RULE");
String fkName = rs.getString("FK_NAME");//外键的名称(可能为空)String pkName = rs.getString("PK_NAME");//主键的名称(可能为空)shortdeferRability = rs.getShort("DEFERRABILITY");
System.out.println(pkTableCat + "-"+ pkTableSchem + "-"+ pkTableName + "-"+ pkColumnName + "-"+ fkTableCat + "-"+ fkTableSchem + "-"+ fkTableName + "-"+ fkColumnName + "-"+ keySeq + "-"+ updateRule + "-"+ delRule + "-"+ fkName + "-"+ pkName + "-"+ deferRability);
}
} catch(SQLException e){
e.printStackTrace();
}
}
public voidcolseCon() {
try{
if(con!= null) {
con.close();
}
} catch(SQLException e) {
e.printStackTrace();
}
}
public static voidmain(String[] args) {
test metaData = newtest();
metaData.getDataBaseInformations();
System.out.println("-------------------");
metaData.getAllTableList(null);
System.out.println("-------------------");
metaData.getAllViewList(null);
metaData.getAllSchemas();
// metaData.getTableColumns(null, "customer");// metaData.getIndexInfo(null, "customer");// metaData.getAllPrimaryKeys(null, "customer");// metaData.getAllExportedKeys(null, "customer");}
}