在mysql中如何用java 获取表和字段的备注信息?谢谢
解决方案 »
- 获取前一个页面传过来的值,为何无法处理?
- 在Linux系统下如何将tomcat 6.0的日志输出到指定的日志文件中
- apache和tomcat的整合问题,如何共用一个端口
- ssh集成的项目,一启动tomcat,就报错。
- 为什么我编写的html文件在IE浏览器中打开正常,在FireFox浏览器中打开排版就乱了?
- HTTP Status 500如何能够解决阿?
- 广而告之 - Java天下,Java者学习的社区
- 兄弟们,请教一下JSTL中如何从bean中得到DataSource那?
- Resin3.08 WEB-INF下怎么没有classes,lib等文件夹
- python写的微服务能注册基于dubbo和zookeeper搭建的分布式服务提供者吗
- 这个删除短消息,值无法传过去??? 快疯了,求救啊.....
- MyEclipse中启动tomcat5.0出错
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();
}
}
// 获取所有表
// ResultSet tableSet = databaseMetaData.getTables(null, "%", "%",
// new String[]{"TABLE"});
// 获取tableName表列信息
ResultSet columnSet = databaseMetaData.getColumns(null, "%",
tableName, "%");
if (null != columnSet) {
while (columnSet.next()) {
//列名
String columnName = columnSet.getString("COLUMN_NAME");
//备注
String columnComment = columnSet.getString("REMARKS");
//列类型
int sqlType = columnSet.getInt("DATA_TYPE");.................
我需要获取表名,字段名,字段属性(类型,文字长度,默认值,备注)信息....
字段的(文字长度,默认值)获取关键字 是那些?也就是除DATA_TYPE外 还有那些 谢谢~~~
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 是多么的重要啊。呵呵
//ResultSet tableSet = databaseMetaData.getTables(null, "%", "%", new String[]{"TABLE"});
//获取tableName表列信息
ResultSet columnSet = databaseMetaData.getColumns(null, "%", tableName, "%");
**********************************************************
getColumns(null, "%", tableName, "%");
这个规则定义 有哪些要求 或者格式 这点没看明白...
**********************************************************
**********************************************************
还有
databaseMetaData.getTables(null, "%", "%", new String[]{"TABLE"});
好像有问题 老提示无数据
但用第二个指定固定的表名则正确显示了....
**********************************************************