java 如何获取 mysql 备注信息

Java code
public void getResultSetMetaData() {
String sqlStr = "SELECT * FROM STUDENTINFO";
ResultSet rs = null;
Statement smt = null;
try {
String[] tp = {"TABLE"};
smt = conn.createStatement();
rs = smt.executeQuery(sqlStr);
ResultSetMetaData rsmd = rs.getMetaData();
/*
获得ResultSetMeataData对象。所有方法的参数都是列的索引号,即第几列,从1开始
*/
System.out.println("下面这些方法是ResultSetMetaData中方法");
System.out.println("获得1列所在的Catalog名字 : " + rsmd.getCatalogName(1));
System.out.println("获得1列对应数据类型的类 " + rsmd.getColumnClassName(1));
System.out.println("获得该ResultSet所有列的数目 " + rsmd.getColumnCount());
System.out.println("1列在数据库中类型的最大字符个数" + rsmd.getColumnDisplaySize(1));
System.out.println("1列的默认的列的标题" + rsmd.getColumnLabel(1));
System.out.println("1列的模式" + rsmd.getSchemaName(1));
System.out.println("1列的类型,返回SqlType中的编号 " + rsmd.getColumnType(1));
System.out.println("1列在数据库中的类型,返回类型全名" + rsmd.getColumnTypeName(1));
System.out.println("1列类型的精确度(类型的长度): " + rsmd.getPrecision(1));
System.out.println("1列小数点后的位数 " + rsmd.getScale(1));
System.out.println("1列对应的模式的名称(应该用于Oracle) " + rsmd.getSchemaName(1));
System.out.println("1列对应的表名 " + rsmd.getTableName(1));
System.out.println("1列是否自动递增" + rsmd.isAutoIncrement(1));
System.out.println("1列在数据库中是否为货币型" + rsmd.isCurrency(1));
System.out.println("1列是否为空" + rsmd.isNullable(1));
System.out.println("1列是否为只读" + rsmd.isReadOnly(1));
System.out.println("1列能否出现在where中" + rsmd.isSearchable(1));
}
catch (SQLException ex) {
ex.printStackTrace();
}
}

 getColumns
ResultSet getColumns(String catalog,
  String schemaPattern,
  String tableNamePattern,
  String columnNamePattern)
  throws SQLException检索可在指定类别中使用的表列的描述。  
仅返回与类别、模式、表和列名称标准匹配的列描述。它们根据 TABLE_SCHEM、TABLE_NAME 和 ORDINAL_POSITION 进行排序。  

每个列描述都有以下列:  

TABLE_CAT String => 表类别(可为 null)  
TABLE_SCHEM String => 表模式(可为 null)  
TABLE_NAME String => 表名称  
COLUMN_NAME String => 列名称  
DATA_TYPE int => 来自 java.sql.Types 的 SQL 类型  
TYPE_NAME String => 数据源依赖的类型名称,对于 UDT,该类型名称是完全限定的  
COLUMN_SIZE int => 列的大小。对于 char 或 date 类型,列的大小是最大字符数,对于 numeric 和 decimal 类型,列的大小就是精度。  
BUFFER_LENGTH 未被使用。  
DECIMAL_DIGITS int => 小数部分的位数  
NUM_PREC_RADIX int => 基数(通常为 10 或 2)  
NULLABLE int => 是否允许使用 NULL。  
columnNoNulls - 可能不允许使用 NULL 值  
columnNullable - 明确允许使用 NULL 值  
columnNullableUnknown - 不知道是否可使用 null  
REMARKS String => 描述列的注释(可为 null)  
COLUMN_DEF String => 默认值(可为 null)  
SQL_DATA_TYPE int => 未使用  
SQL_DATETIME_SUB int => 未使用  
CHAR_OCTET_LENGTH int => 对于 char 类型,该长度是列中的最大字节数  
ORDINAL_POSITION int => 表中的列的索引(从 1 开始)  
IS_NULLABLE String => "NO" 表示明确不允许列使用 NULL 值,"YES" 表示可能允许列使用 NULL 值。空字符串表示没人知道是否允许使用 null 值。  
SCOPE_CATLOG String => 表的类别,它是引用属性的作用域(如果 DATA_TYPE 不是 REF,则为 null)  
SCOPE_SCHEMA String => 表的模式,它是引用属性的作用域(如果 DATA_TYPE 不是 REF,则为 null)  
SCOPE_TABLE String => 表名称,它是引用属性的作用域(如果 DATA_TYPE 不是 REF,则为 null)  
SOURCE_DATA_TYPE short => 不同类型或用户生成 Ref 类型、来自 java.sql.Types 的 SQL 类型的源类型(如果 DATA_TYPE 不是 DISTINCT 或用户生成的 REF,则为 null)  


有java-api 是多么的重要啊。呵呵

你可能感兴趣的:(mysql)