@Override
	public ArrayList<Product> searchByKeywords(String[] keywords) {
		
		if (keywords.length == 0) return new ArrayList<Product>(); 
		
		// TODO there must be a better way !
		String sql = "SELECT * FROM product WHERE ";
		
		for (String keyword : keywords) {
			sql += "product_name ILIKE '%" + keyword 
					+ "%' OR genre ILIKE '%" + keyword 
					+ "%' OR description ILIKE '%" + keyword 
					+ "%' OR ";
		}
		
		sql = sql.substring(0, sql.length()-4) + ";"; // -4 to remove trailing OR
		// ---------------------------------
		
		return queryForProducts(sql);
	}