如何通过列名获取表名?急切询问!

greathong 2003-12-22 04:37:44
我使用ResultSetMetaData 中的getTableName方法,结果每次都是null或是"",通过查帮助和相关材料,感觉是JDbc driver 没有实现,我用的是sun.jdbc.odbc.JdbcOdbcDriver
请问如何通过列名获取表名,方法不限!
...全文
178 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
greathong 2003-12-23
  • 打赏
  • 举报
回复
通过特定的驱动实现了,我想原因在于有些驱动中未实现getTableName方法!
Yanbin_Q 2003-12-23
  • 打赏
  • 举报
回复
用的时候换驱动啊
你用jdbcodbcdriver也要为每一种数据库分别建立数据源的啊

只要更换连接时的DriverManager和url就行。
greathong 2003-12-23
  • 打赏
  • 举报
回复
请问可否提供一个可支持常用数据库 Access,Sql server, MySql,Db2,Oracle 等的驱动
xiaohaiz 2003-12-23
  • 打赏
  • 举报
回复
俺倒是想到一个土办法,根据列名来获取表名。
其实很简单,首先获取所有的表名,记录下来。有了表名,就可以知道其Meta信息了,可以获取相应的列名。然后把已知的列名在所有列名中遍历,对应的所有表名就可以得到了。
提供一段获取所有表名的代码片断,主要靠DatabaseMetaData:
<<
DatabaseMetaData databaseMetaData = conn.getMetaData();
String[] tableType = {"TABLE"};
ResultSet resultSet = databaseMetaData.getTables(null, null, "%", tableType);

try {
while(resultSet.next()) {
String schemaName = resultSet.getString(2);
String tableName = resultSet.getString(3);
}
} finally {
resultSet.close();
}
>>
Yanbin_Q 2003-12-23
  • 打赏
  • 举报
回复
数据库应该是一个向下的合成模式,库保持对表的引用,表保持对字段的引用

反过来应该就不行。

建议楼主换一个驱动,下载一个特定数据库的jdbc驱动
这样就可以用纯java来写数据库操作程序

而用JdbcOdbcDriver桥接,odbc部分是用C++实现的。

javafounder 2003-12-23
  • 打赏
  • 举报
回复
我记得可以通过库名得到所有表名,再根据表名能得到该表的所有字段

我帮你找找我原来写的测试代码,如果有就给你贴上来
Yanbin_Q 2003-12-23
  • 打赏
  • 举报
回复
什么是通过列名得到表名呢?

不同的表有相同的列名怎么办呢?

列应该不会保持对表的引用关系的

就是通过ResultSetMetaData去获取,要jdbc去实现那个方法

不然就要去数据库里查询得到表名。
zez 2003-12-23
  • 打赏
  • 举报
回复
呵呵,估计只能换个驱动了...
jdbcodbc仅仅演示用的,干嘛非要要它?
其他的驱动应该都实现了esultSetMetaData...
sadenxu 2003-12-23
  • 打赏
  • 举报
回复
不知道你用的是什么数据库,如果是oracle的话,可以用oracle的JDBC driver,它里面的ResultSetMetaData可以取到表名。

另外一个方法,在oracle里面有很多object,你可以写SQL进行查询,然后得到含有列名(colname)的TableName.
老土豆T 2003-12-23
  • 打赏
  • 举报
回复
对表名要通过sql 语句实现。jdbc是没有实现

sybase 里是 select * from sysobjects where type ='u' (得到用户表)
ustbzhangwei 2003-12-23
  • 打赏
  • 举报
回复
驱动从数据库厂商网站下载
http://otn.oracle.com/software/tech/java/sqlj_jdbc/index.html
greathong 2003-12-22
  • 打赏
  • 举报
回复
我是说通过列名查询表名,主要是获得查询结果中的列表对应关系
yoken 2003-12-22
  • 打赏
  • 举报
回复
你查询用的select里没有表名吗

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧