在沒有資料庫客戶端的情況下查看錶介面和資料
阿新 • • 發佈:2019-02-13
前幾天遇到一個問題,就是需要在linux下檢視一個遠端的資料庫中的資料表結構和資料。而且由於網路策略的問題,還只能這臺才能訪問,好在這臺機器上裝了JDK,所以我想自己寫一個簡單資料表結構檢視工具吧,其實很簡單但是用的時候又比較急,具體程式碼如下,如果誰有更好的辦法請留言。
上面的例子中我用的是Oracle資料庫;import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; public class ViewData { public static void main(String[] args) { Connection conn = null; PreparedStatement stmt = null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); conn = DriverManager.getConnection(args[0], args[1], args[2]); stmt = conn.prepareStatement("select * from " + args[3]); ResultSet rs = stmt.executeQuery(); ResultSetMetaData rsd = rs.getMetaData(); int columnCount = rsd.getColumnCount(); System.out.println("【表結構:】"); for(int i = 0; i < columnCount; i++) { System.out.print(rsd.getColumnClassName(i + 1) + "\t" + rsd.getColumnTypeName(i + 1) + "\t" + rsd.getColumnName(i + 1) + "\t" + rsd.getColumnDisplaySize(i + 1)); System.out.println(); } System.out.println("----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"); System.out.println("【資料資訊:】"); while(rs.next()) { for(int i=1; i<=columnCount; i++) System.out.print(rs.getObject(i) + "\t"); System.out.println(); } System.out.println("----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch(SQLException e) { e.printStackTrace(); }finally { try { if(stmt != null) stmt.close(); if(conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
執行時需要有四個引數分別為:資料庫URL,資料庫使用者名稱,資料庫密碼,需要檢視的資料表的表名。
如果誰有更好的辦法請留言,謝謝!