2012-07-04 13 views
3

我試圖從數據庫中選擇所有表名,使用下面的代碼行。metadata.getTables結果集在mssql的情況下爲空

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提供差異獲取表數據庫比如mysql,mssql,oracle;因爲在我的情況下,我的數據庫可能是上述任何一種。 任何人都可以請這個幫忙。

+0

當您使用MSSQL時,您是否收到NullPointerException? – UVM

+0

不,我沒有得到任何異常。但結果集是空的,因爲在mssql的情況下 –

+0

mysql和mssql需要不同的連接器... com.microsoft.sqlserver.jdbc.SQLServerDriver for mssql com.mysql.jdbc.Driver for mysql – pavi

回答

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(); 

您可以在這個網頁,請點擊此鏈接:

Listing All Tables - getTables()

相關問題