package com.ack.util;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
/**
* Provides utilities for database access
*/
public class DBUtil {
/**
* Produces a string representation of a complete result set
* @param rs The ResultSet to be displayed
* @return The string representation
* @throws SQLException to indicate a problem with the ResultSet
*/
public static String dumpResultSet( ResultSet rs ) throws SQLException {
StringBuffer buf = new StringBuffer();
if( rs != null ) {
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount() + 1;
for( int i = 1; i < columnCount; i++ ) {
buf.append( rsmd.getColumnLabel( i ) );
buf.append( " " );
}
buf.append( "\n===========================================\n" );
while( rs.next() ) {
for( int i = 1; i < columnCount; i++ ) {
buf.append( rs.getObject( i ) );
buf.append( " " );
}
buf.append( "\n" );
}
}
return buf.toString();
}
/**
* create a list of map objects. each map object represents a row within the
* supplied result set that is key against the column name
*
* @return List the list of map objects for each row in the ResultSet
* @param rs the ResultSet to extract the data from
* @throws SQLException report database problems extracting details from the ResultSet
*/
public static List buildListOfMapRecords( ResultSet rs )
throws SQLException {
List l = new LinkedList();
if( rs != null ) {
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount() + 1;
while( rs.next() ) {
Map map = new HashMap();
for( int i = 1; i < columnCount; i++ ) {
map.put( rsmd.getColumnLabel( i ), rs.getObject( i ) );
}
l.add( map );
}
}
return l;
}
}