请教:JDBC如何得到数据库列的类型 我想通过JDBC根据列名得到这个列的类型,请问有什么方法?目前好像有个方法是根据索引得:ResultSetMetaData.getColumnType(int i)我的程序是,从A表中循环读出所有表名与列名,然后要在B表中根据A表的列名来查看该列的类型. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用ResultSet.getMetaData() 得到ResultSetMetaData。 用ResultSetMetaData.getColumnType()得到一个int,在Types类中找到数据类型。分数拿来。 至少ResultMetaData不提供楼主需求的方法,所以楼主只能自己做了最容易想到的就是自建一个Map ResultSetMetaData rsData preparedStatement.getMetaData() for(int i=0;i<rsData.getColumnCount();i++) map.put(rsData.getColumnName(i),rsData.getColumnType(i)); 做在内存中先,然后再怎么操作看你的具体需求了,呵呵,当然也许有更好的方法 你用 getColumnCount() 获得表中的总列数,再用 getTableName 获得列的名称用 map 保存起来(key 为列名,value 为列号)查找时采用列名查出列号,再用 getColumnTypeName(int column) 查出类型具体的没有试过,只是个想法。 嗯,谢谢楼上几位,我也想过这些方法,但总觉得,这样做太浪费资源了,会有很多FOR语句,如果A表里的数据量很大的话,我怕程序跑起来太慢 DatabaseMetaData dbmb = con.getMetaData();result = dbmb.getColumns(null,null,tbname,column);column是我取出来的列名result.getString("DATA_TYPE");打出来看,这个方法取出来是3,不知道这里的3是什么意思 java.sql.Types 的常量-1 LONGVARCHAR-2 BINARY-3 VARBINARY-4 LONGVARBINARY-5 BIGINT-6 TINYINT-7 BIT0 NULL1 CHAR2 NUMERIC3 DECIMAL4 INTEGER5 SMALLINT6 FLOAT7 REAL8 DOUBLE12 VARCHAR16 BOOLEAN70 DATALINK91 DATE92 TIME93 TIMESTAMP1111 OTHER2000 JAVA_OBJECT2001 DISTINCT2002 STRUCT2003 ARRAY2004 BLOB2005 CLOB2006 REF 装球 初学java,请教 求Java班级管理信息系统 如何使用数组实现阿拉伯数字转换成大写中文,比如1340转换成 壹仟叁佰肆拾 ,希望有高手帮忙解决下,急!!! 大家好!请教大家一个线程问题? 问高手一个问题,求如下功能的代码 我的程序打了包(jar),就找不到加载的其它jar了,奇怪,为什么会这样??? numberFormat 类的问题,错在哪里 编个socket代理怎么样? Jmeter 无法运行,求大神 java中bytebuffer的解析... 如何用Runtime.exec向启动的进程中写入数据??????
用ResultSetMetaData.getColumnType()得到一个int,在Types类中找到数据类型。
分数拿来。
for(int i=0;i<rsData.getColumnCount();i++)
map.put(rsData.getColumnName(i),rsData.getColumnType(i)); 做在内存中先,然后再怎么操作看你的具体需求了,呵呵,当然也许有更好的方法
用 map 保存起来(key 为列名,value 为列号)查找时采用列名查出列号,再用 getColumnTypeName(int column) 查出类型具体的没有试过,只是个想法。
result = dbmb.getColumns(null,null,tbname,column);column是我取出来的列名
result.getString("DATA_TYPE");打出来看,这个方法取出来是3,不知道这里的3是什么意思
-2 BINARY
-3 VARBINARY
-4 LONGVARBINARY
-5 BIGINT
-6 TINYINT
-7 BIT
0 NULL
1 CHAR
2 NUMERIC
3 DECIMAL
4 INTEGER
5 SMALLINT
6 FLOAT
7 REAL
8 DOUBLE
12 VARCHAR
16 BOOLEAN
70 DATALINK
91 DATE
92 TIME
93 TIMESTAMP
1111 OTHER
2000 JAVA_OBJECT
2001 DISTINCT
2002 STRUCT
2003 ARRAY
2004 BLOB
2005 CLOB
2006 REF