importjava.io.PrintStream;import java.sql.*;importjava.util.Properties;public classZJdbcPing {public static voidmain(String[] args) {
PrintStream outs=System.out;//title.
outs.println("zjdbcping ");//oracle.jdbc.driver.OracleDriver "jdbc:oracle:thin:@192.168.3.33:1521:zjkf" crjapp crjapp
outs.println();//args.
String driverClassName="";
String url="";
String username="";
String password="";if (args.length>0) driverClassName=args[0];if (args.length>1) url=args[1];if (args.length>2) username=args[2];if (args.length>3) password=args[3];//connect.
Connection conn = null;try{
Class.forName(driverClassName);
conn=DriverManager.getConnection(url, username, password);
}catch(Throwable ex) {
ex.printStackTrace(outs);
}if (null==conn) return;//info.
try{
outs.println(String.format("getCatalog:\t%s", conn.getCatalog()));
outs.println("getClientInfo:");
Properties properties=conn.getClientInfo();
properties.list(outs);//outs.println("getTypeMap:");//Map> typeMap = conn.getTypeMap();//for(String key: typeMap.keySet()) {//Class> c = typeMap.get(key);//outs.println(String.format("\t%s:\t%s", key, c.toString()));//}
outs.println("getMetaData:");
DatabaseMetaData databaseMetaData=conn.getMetaData();
printDatabaseMetaData(outs, databaseMetaData,"\t");
}catch(Throwable ex) {
ex.printStackTrace(outs);
}finally{try{
conn.close();
}catch(Throwable ex) {
ex.printStackTrace(outs);
}
}return;
}private static voidprintDatabaseMetaData(PrintStream outs,
DatabaseMetaData dbmd, String prefix)throwsException {if (null==outs) return;if (null==dbmd) return;
outs.println(prefix+String.format("getDatabaseMajorVersion:\t%d", dbmd.getDatabaseMajorVersion()));
outs.println(prefix+String.format("getDatabaseMinorVersion:\t%d", dbmd.getDatabaseMinorVersion()));
outs.println(prefix+String.format("getDatabaseProductName:\t%s", dbmd.getDatabaseProductName()));
outs.println(prefix+String.format("getDatabaseProductVersion:\t%s", dbmd.getDatabaseProductVersion()));
outs.println(prefix+String.format("getDefaultTransactionIsolation:\t%d", dbmd.getDefaultTransactionIsolation()));
outs.println(prefix+String.format("getDriverMajorVersion:\t%d", dbmd.getDriverMajorVersion()));
outs.println(prefix+String.format("getDriverMinorVersion:\t%d", dbmd.getDriverMinorVersion()));
outs.println(prefix+String.format("getDriverName:\t%s", dbmd.getDriverName()));
outs.println(prefix+String.format("getDriverVersion:\t%s", dbmd.getDriverVersion()));
outs.println(prefix+String.format("getJDBCMajorVersion:\t%d", dbmd.getJDBCMajorVersion()));
outs.println(prefix+String.format("getJDBCMinorVersion:\t%d", dbmd.getJDBCMinorVersion()));
outs.println(prefix+String.format("getURL:\t%s", dbmd.getURL()));
outs.println(prefix+String.format("getUserName:\t%s", dbmd.getUserName()));
ResultSet rs=dbmd.getClientInfoProperties();
outs.println(prefix+"getClientInfoProperties:");
printResultSet(outs, rs, prefix+"\t");
rs.close();
}private static voidprintResultSet(PrintStream outs, ResultSet rs,
String prefix)throwsException {if (null==outs) return;if (null==rs) return;
ResultSetMetaData rsmd=rs.getMetaData();int cols =rsmd.getColumnCount();
outs.println(prefix+String.format("#getColumnCount:\t%d", cols));//col.
if (true) {
outs.print(prefix);for(int i=1; i<=cols; ++i) {if (i>1) outs.print('\t');
String str=rsmd.getColumnName(i);
outs.print(str);
}
outs.println();
}//rows.
int rows = 0;while(rs.next()) {++rows;
outs.print(prefix);for(int i=1; i<=cols; ++i) {if (i>1) outs.print('\t');
Object o= null;
String str= null;try{
o=rs.getObject(i);if (null!=o)
str=o.toString();
}catch(Exception ex) {
str= String.format("(%s)", ex.getMessage());
}
outs.print(str);
}
outs.println();
}
outs.println(prefix+String.format("#RowCount:\t%d", rows));
}
}