前几天遇到一个问题,就是需要在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,数据库用户名,数据库密码,需要查看的数据表的表名。
如果谁有更好的办法请留言,谢谢!