JAVA ResultSet列数据类型

 //-------------------------------------------------//
    //  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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值