protected final Map<String, Object> getData(String table, String key, String value) throws DataLoadFailedException {
        Connection conn = getConnection();
        PreparedStatement statement = null;
        ResultSet set = null;
        try {
            statement = conn.prepareStatement("SELECT * FROM ? WHERE ?=?");
            statement.setString(1, table);
            statement.setString(2, key);
            statement.setString(3, value);
            set = statement.executeQuery();
            int size = set.getMetaData().getColumnCount();
            HashMap<String, Object> mappings = new HashMap<String, Object>();
            for (int i = 1; i <= size; i++) {
                Object obj = set.getObject(i);
                String name = set.getMetaData().getColumnName(i);
                mappings.put(name, obj);
            }
            return mappings;
        } catch (SQLException ex) {
            throw new DataLoadFailedException(ex);
        } finally {
            if (set != null) {
                try {
                    set.close();
                } catch (SQLException ex) {
                }
            }
            if (statement != null) {
                try {
                    statement.close();
                } catch (SQLException ex) {
                }
            }
        }
    }