如何通过列名获取表名?急切询问! 你查询用的select里没有表名吗 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 对表名要通过sql 语句实现。jdbc是没有实现sybase 里是 select * from sysobjects where type ='u' (得到用户表) 不知道你用的是什么数据库,如果是oracle的话,可以用oracle的JDBC driver,它里面的ResultSetMetaData可以取到表名。另外一个方法,在oracle里面有很多object,你可以写SQL进行查询,然后得到含有列名(colname)的TableName. 呵呵,估计只能换个驱动了...jdbcodbc仅仅演示用的,干嘛非要要它?其他的驱动应该都实现了esultSetMetaData... 什么是通过列名得到表名呢?不同的表有相同的列名怎么办呢?列应该不会保持对表的引用关系的就是通过ResultSetMetaData去获取,要jdbc去实现那个方法不然就要去数据库里查询得到表名。 数据库应该是一个向下的合成模式,库保持对表的引用,表保持对字段的引用反过来应该就不行。建议楼主换一个驱动,下载一个特定数据库的jdbc驱动这样就可以用纯java来写数据库操作程序而用JdbcOdbcDriver桥接,odbc部分是用C++实现的。 俺倒是想到一个土办法,根据列名来获取表名。其实很简单,首先获取所有的表名,记录下来。有了表名,就可以知道其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(); }>> 请问可否提供一个可支持常用数据库 Access,Sql server, MySql,Db2,Oracle 等的驱动 用的时候换驱动啊你用jdbcodbcdriver也要为每一种数据库分别建立数据源的啊只要更换连接时的DriverManager和url就行。 通过特定的驱动实现了,我想原因在于有些驱动中未实现getTableName方法! 驱动从数据库厂商网站下载http://otn.oracle.com/software/tech/java/sqlj_jdbc/index.html 一個關於substance的問題 (急急急)java执行linux命令的问题 使用Scanner的nextInt()进行键盘输入的问题 如何设置Jframe的背景图片? 我的全部(90)分求 wappush源代码 莱鸟提问 getClass() 和 newInstance()两个方法? 不知大家遇到没有,jbuilder6中光标一点都不好用? java 275 怎么样,有没有用呀?那位知道?麻烦添一块砖吧。 关于socket 各位兄弟元旦放几天假? 关于线程的一点疑惑,望赐教。谢谢。
jdbcodbc仅仅演示用的,干嘛非要要它?
其他的驱动应该都实现了esultSetMetaData...
这样就可以用纯java来写数据库操作程序而用JdbcOdbcDriver桥接,odbc部分是用C++实现的。
其实很简单,首先获取所有的表名,记录下来。有了表名,就可以知道其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();
}
>>
你用jdbcodbcdriver也要为每一种数据库分别建立数据源的啊只要更换连接时的DriverManager和url就行。
http://otn.oracle.com/software/tech/java/sqlj_jdbc/index.html