@SuppressWarnings({ "rawtypes", "unchecked" })
	public ArrayList<Map<String,Object>> executeQuery(String sql, String[] parameters) {
		ArrayList<Map<String,Object>> results = new ArrayList<Map<String,Object>>();
		
		try {
			conn = jdbcUtils.getConnection();
			ps = conn.prepareStatement(sql);
			
			if (parameters != null) {
				for (int i=0; i<parameters.length; i++) {
					ps.setString(i+1, parameters[i]);
				}
			}
			
			rs = ps.executeQuery();
			
			ResultSetMetaData rsmd = rs.getMetaData();
			int column = rsmd.getColumnCount();
			Map<String,Object> resultColumnMap = null;
			
			while (rs.next()) {
			//	Object[] objects = new Object[column];
				resultColumnMap = new HashMap<String,Object>();
				for (int i=1; i<=column; i++) {
			//		objects[i-1] = rs.getObject(i);
					resultColumnMap.put(rsmd.getColumnName(i), rs.getObject(i));
				}
				
				results.add(resultColumnMap);
			}
		} catch (SQLException e) {
			e.printStackTrace();
			throw new RuntimeException(e.getMessage());
		} finally {
			jdbcUtils.free(conn, ps, rs);
		}
		return results; 
	}