我试图从数据库中选择所有表名。使用以下代码行。
DatabaseMetaData databaseMetaData = connection.getMetaData();
resultSet = databaseMetaData.getTables(null, dbName, null, null);
while(resultSet.next()){
//doing operations - take table name and all that
}
这里的问题就像mysql的工作正常一样,意味着底层数据库是mysql - 没问题。但是当我使用mssql尝试相同的代码时,我得到的结果是空的。是否还有其他替代方法可以从mssql数据库中获取表格详细信息。?
如果它的..please提供了在diff数据库下获取表详细信息的区别,如mysql,mssql,oracle;因为在我的情况下我的数据库可能是上述任何一个。 任何人都可以帮忙。
答案 0 :(得分:1)
获取代码,例如:
Connection con = null;
try {
Class.forName(
"com.microsoft.sqlserver.jdbc.SQLServerDriver");
con = DriverManager.getConnection(
"jdbc:sqlserver://localhost:1269;"
+ "user=sa;password=HerongYang;"
+ "database=AdventureWorksLT");
DatabaseMetaData meta = con.getMetaData();
ResultSet res = meta.getTables(null, null, null,
new String[] {"TABLE"});
System.out.println("List of tables: ");
while (res.next()) {
System.out.println(
" "+res.getString("TABLE_CAT")
+ ", "+res.getString("TABLE_SCHEM")
+ ", "+res.getString("TABLE_NAME")
+ ", "+res.getString("TABLE_TYPE")
+ ", "+res.getString("REMARKS"));
}
res.close();
con.close();
您可以在此页面尝试此链接:
答案 1 :(得分:0)
答案 2 :(得分:0)
MySQL安装附带默认数据库。其中一个数据库名为'mysql'。如果你使用'mysql'数据库并尝试获取元数据和表名,它会给出空结果。 我通过创建另一个名为“mydb”的数据库验证了这一点,然后使用它来获取元数据,然后使用表名。它在翻转中起作用。
似乎MYSQL使用名为'mysql'的默认数据库
有一些问题或限制