如何在JAVA中获取Access数据库的表名?

yeyanbo 2003-01-24 04:58:49
如何在JAVA中获取Access数据库的表名?
...全文
222 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hanty 2003-01-27
  • 打赏
  • 举报
回复
DatabaseMetaData
wangwenyou 2003-01-27
  • 打赏
  • 举报
回复
如果你是通过JDBC-ODBC驱动连接Access的,估计它不支持取数据库元数据;请使用专用的Access JDBC驱动(Type 3 或Type 4)
yeyanbo 2003-01-26
  • 打赏
  • 举报
回复
我按照你的思路写了下面的一段程序:
try
{
DatabaseMetaData meta = conn.getMetaData();
ResultSet rs = meta.getTables( null, "%", "%", null );
}
catch(SQLException sqlex)
{
System.err.println("Unabled to getMetaData");
sqlex.printStackTrace();
}
编译的时候无错误,但是执行的时候就抛出异常:
Unabled to getMetaData
java.sql.SQLException: [Microsoft][ODBC Microsoft Access 驱动程序]可选的功能未实现
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6879)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7036)
at sun.jdbc.odbc.JdbcOdbc.SQLTables(JdbcOdbc.java:5472)
at sun.jdbc.odbc.JdbcOdbcDatabaseMetaData.getTables(JdbcOdbcDatabaseMeta
Data.java:2395)
at myData.<init>(myData.java:33)
at myData.main(myData.java:75)

后来我就改称下面的形式:
try
{
DatabaseMetaData meta = conn.getMetaData();
}
catch(SQLException sqlex)
{
System.err.println("Unabled to getMetaData");
sqlex.printStackTrace();
}

try
{
ResultSet rs = meta.getTables( null, "%", "%", null );
}
catch(SQLException sqlex)
{
System.err.println("Unabled to getTableList");
sqlex.printStackTrace();
}
现在连编译也不行了:
D:\java\myData.java:42: cannot resolve symbol
symbol : variable meta
location: class myData
ResultSet rs = meta.getTables( null, "%", "%", null );
^
1 error

Process completed.
估计就是这句程序的问题,请指教!
wangwenyou 2003-01-24
  • 打赏
  • 举报
回复
/**
* 取得当前连接数据库的表信息。
*
* @return 表信息列表
* @exception SQLException Description of the Exception
* @throws Exception 失败时抛出
*/
public ParameterList getTableList()
throws SQLException
{
DatabaseMetaData meta = this.getMetaData();
ResultSet rs = meta.getTables( null, "%", "%", null );
ParameterList result = new ParameterList();

while ( rs.next() )
{
String name = rs.getString( 3 );
String type = rs.getString( 4 );
DBTableStruct table = new DBTableStruct();
table.name = name;
table.type = type;
result.append( table );
}

return result;
}
/**
* 取得当前连接所连接数据库的元数据。
*
* @return 当前连接数据库元数据
* @throws SQLException 出错
*/
public DatabaseMetaData getMetaData()
throws SQLException
{
return connection.getMetaData();
}
yeyanbo 2003-01-24
  • 打赏
  • 举报
回复
可否详细一点,我也知道可以利用databasemetadata,具体怎么用不清楚.
teddy_huang 2003-01-24
  • 打赏
  • 举报
回复
java.sql.DatabaseMetaData
java.sql.ResultSetMetaData

62,614

社区成员

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

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