社区
Java SE
帖子详情
如何通过列名获取表名?急切询问!
greathong
2003-12-22 04:37:44
我使用ResultSetMetaData 中的getTableName方法,结果每次都是null或是"",通过查帮助和相关材料,感觉是JDbc driver 没有实现,我用的是sun.jdbc.odbc.JdbcOdbcDriver
请问如何通过列名获取表名,方法不限!
...全文
178
13
打赏
收藏
如何通过列名获取表名?急切询问!
我使用ResultSetMetaData 中的getTableName方法,结果每次都是null或是"",通过查帮助和相关材料,感觉是JDbc driver 没有实现,我用的是sun.jdbc.odbc.JdbcOdbcDriver 请问如何通过列名获取表名,方法不限!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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里没有表名吗
Sql Server 中 根据
列名
查询
表名
已知
列名
ELEMENT_ID ,查询所属
表名
称 Select O.name objectName, C.name ColumnName from sys.columns C inner join sys.objects O ON C.object_id=O.object_id where C.name like '%ELEMENT_ID%'order by O....
Oracle数据库,查询表有多少字段、根据
列名
查询
表名
1、 查询一个表有多少列 select count(*) from user_...用户表为你要查询的
表名
或视图名。 2、根据列明查找
表名
,可以查到表、视图、索引 select distinct table_name from user_tab_columns t where t.column...
SQL Server根据
列名
查
表名
select a.name
表名
,b.name
列名
from sysobjects a,syscolumns b where a.id=b.id and b.name='rszfw' and a.type='U'
mysql 根据
列名
查
表名
_根据 值 查找
表名
字段名
下面是编程之家 jb51.cc 通过网络收集整理的代码片段。编程之家小编现在分享给大家,也给大家做个参考。DECLAREvar_sql VARCHAR2(1000);var_value VARCHAR2(100):='要查的值';var_cnt number;var_table_owner ...
根据
列名
找
表名
select TABLE_NAME from user_tab_columns where column_name='
列名
' 只要数据库下的表中有该‘
列名
’的表的名字都会被输出。
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章