//-------------------------------------------------//
// Here's how to determine a column's data type. //
// This example returns an integer, and the //
// integer indicates the column's data type. //
//-------------------------------------------------//
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("SELECT * from Customer");
int colType = rs.getColumnType(1);
System.out.println("Column 1 is type " + colType);
public String getColumnTypeName(String ColumnLabel) {
String strType = "";
int colnum = 0;
ResultSetMetaData metaData = null;
try {
metaData = this.dataSet.getMetaData();
colnum = this.dataSet.findColumn(ColumnLabel);
} catch (SQLException e) {
// TODO 自动生成的 catch 块
// e.printStackTrace();
colnum = 0;
}
if (colnum > 0) { // 当列号大于0时,代表表存在
try {
strType = metaData.getColumnTypeName(colnum); // 返回列名
} catch (SQLException e) {
// TODO 自动生成的 catch 块
//e.printStackTrace();
strType = "";
}
}
return strType;
}
返回 colType 值说明:
-7 BIT
-6 TINYINT
-5 BIGINT
-4 LONGVARBINARY
-3 VARBINARY
-2 BINARY
-1 LONGVARCHAR
0 NULL
1 CHAR
2 NUMERIC
3 DECIMAL
4 INTEGER
5 SMALLINT
6 FLOAT
7 REAL
8 DOUBLE
12 VARCHAR
91 DATE
92 TIME
93 TIMESTAMP
1111 OTHER
参考:https://alvinalexander.com/java/edu/pj/jdbc/recipes/ResultSet-ColumnType.shtml
ResultSet rs = stmt.executeQuery(sql);
ResultSetMetaData data = rs.getMetaData();
for (int i = 1; i <= data.getColumnCount(); i++) {
// 获得所有列的数目及实际列数
int columnCount = data.getColumnCount();
// 获得指定列的列名
String columnName = data.getColumnName(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);
// 某列类型的精确度(类型的长度)
int precision = data.getPrecision(i);
// 小数点后的位数
int scale = data.getScale(i);
// 获取某列对应的表名
String tableName = data.getTableName(i);
// 是否自动递增
boolean isAutoInctement = data.isAutoIncrement(i);
// 在数据库中是否为货币型
boolean isCurrency = data.isCurrency(i);
// 是否为空
int isNullable = data.isNullable(i);
// 是否为只读
boolean isReadOnly = data.isReadOnly(i);
// 能否出现在where中
boolean isSearchable = data.isSearchable(i)
————————————————
版权声明:本文为CSDN博主「LiJiVV」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/LiJiVV/article/details/95326917