如何判斷資料庫中是否存在一個資料表

來源:互聯網
上載者:User

方法是通過查詢資料庫meta資料來擷取資料表。

public static Boolean doesTableExist(String tablename) {<br /> Connection con = null;<br /> HashSet<String> set = new HashSet<String>();<br /> try {<br /> Class.forName(DatabaseConnection.getDatabaseConnection());<br /> con = DriverManager.getConnection(DatabaseName.con);<br /> DatabaseMetaData meta = con.getMetaData();<br /> ResultSet res = meta.getTables(null, null, null,<br /> new String[]{"TABLE"});<br /> while (res.next()) {<br /> set.add(res.getString("TABLE_NAME"));<br /> }<br /> res.close();<br /> con.close();<br /> } catch (Exception e) {<br /> System.err.println("Exception: " + e.getMessage());<br /> }<br /> //System.out.println(set);<br /> return set.contains(tablename.toUpperCase());<br /> }

 

其中只需要替換DatabaseConnection.getDatabaseConnection()
DatabaseName.con
為你需要串連的資料庫就好了。可以參考另一篇文章如何串連埠通的資料庫:http://blog.csdn.net/autofei/archive/2010/05/24/5621274.aspx

 

另外一個方法就是嘗試串連資料庫,然後捕獲異常。

//connection = new DatabaseConnection(DatabaseConnection.DERBY, "", "db","uncc", "uncc");<br />connection = new DatabaseConnection(DatabaseConnection.POSTGRES, "localhost", "postgres",<br />"postgres", "postgres");<br />database = new Database(connection);</p><p>// Checks to see if database structure already exists<br />boolean exists = true;<br />Statement stmt = connection.getStatement();<br />try {<br />stmt.executeQuery("SELECT * FROM qgram");<br />} catch (Exception e) {<br />connection.rollback();<br />exists = false;<br />} 

 

參考:http://www.herongyang.com/jdbc/JDBC-ODBC-Flat-File-List-Tables.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.