package org.plenix.translator.sql;
import java.sql.*;
import java.util.Vector;
import java.util.Hashtable;
import DBConnectionManager;
public class DBUtil {
public static Vector executeQuery(String connectionName, String queryStatement)
throws SQLException
{
Connection connection = null;
Statement statement = null;
DBConnectionManager connectionManager = DBConnectionManager.getInstance();
try {
connection = connectionManager.getConnection(connectionName);
if (connection == null) {
throw new SQLException("Can't get database connection '" + connectionName + "'");
}
statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(queryStatement);
ResultSetMetaData metaData = resultSet.getMetaData();
int columnCount = metaData.getColumnCount();
String[] columnNames = new String[columnCount];
for (int i = 0; i < columnCount; i++) {
columnNames[i] = metaData.getColumnName(i + 1).toUpperCase();
}
Vector rowSet = new Vector();
while (resultSet.next()) {
Hashtable row = new Hashtable();
for (int i = 0; i < columnCount; i++) {
Object columnValue = resultSet.getObject(i + 1);
if (columnValue instanceof String) {
columnValue = new String(resultSet.getBytes(i + 1));
}
if (!resultSet.wasNull()) {
row.put(columnNames[i], columnValue);
}
}
rowSet.addElement(row);
}
return rowSet;
} catch (Exception e) {
// e.printStackTrace();
return null;
} finally {
try {
if (statement != null) {
statement.close();
}
if (connection != null) {
connectionManager.freeConnection(connectionName, connection);
}
} catch (Exception x) { }
}
}
}