1. 程式人生 > >在沒有資料庫客戶端的情況下查看錶介面和資料

在沒有資料庫客戶端的情況下查看錶介面和資料

前幾天遇到一個問題,就是需要在linux下檢視一個遠端的資料庫中的資料表結構和資料。而且由於網路策略的問題,還只能這臺才能訪問,好在這臺機器上裝了JDK,所以我想自己寫一個簡單資料表結構檢視工具吧,其實很簡單但是用的時候又比較急,具體程式碼如下,如果誰有更好的辦法請留言。

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

}
上面的例子中我用的是Oracle資料庫;

執行時需要有四個引數分別為:資料庫URL,資料庫使用者名稱,資料庫密碼,需要檢視的資料表的表名。

如果誰有更好的辦法請留言,謝謝!