ResultSetMetaData를 활용한 서버 데이터 출력하는 자바 프로그램입니다.
package com.kick.mysql; import java.io.BufferedReader; import java.io.FileReader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; ; public class QueryExecutor { private static String sqlFile; private static int loopCount; public void start() throws Exception { Connection conn = null; PreparedStatement pstmt = null; ResultSet rset = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost/test?user=root&password=root"); } catch (Exception e) { System.out.println("Error in connection" + e); } // SQL Loading StringBuffer sql = new StringBuffer(); FileReader fr = new FileReader(sqlFile); BufferedReader br = new BufferedReader(fr); String s; while((s = br.readLine()) != null) { sql.append(s).append("\n"); } fr.close(); String columnHeading = ""; try { pstmt = conn.prepareStatement(sql.toString()); rset = pstmt.executeQuery(); if (rset.next()) { ResultSetMetaData rsmd = rset.getMetaData(); int columnCount = rsmd.getColumnCount(); for (int i = 1; i <= columnCount; i++) { columnHeading = columnHeading + "\t" + rsmd.getColumnName(i); } System.out.println(columnHeading); while (rset.next()) { for (int i = 1; i <= columnCount; i++) { System.out.print("\t" + rset.getString(i)); } System.out.println("\n"); } } else System.out.println("There is no records in table"); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) throws Exception { if (args.length == 0) { System.out .println("Usage: java QueryExecutor [sql file name] [loop count]"); } sqlFile = args[0]; loopCount = Integer.parseInt(args[1]); new QueryExecutor().start(); } }