public static String readOneParty(String partyName) //when you just want one part
		{
			String string=null;
			ObjectMapper jsonMapper = new ObjectMapper(); //jackson object for parsing/writing json
			Party localParty = new Party(); //to retrieve object from db
			if(connection==null)
			{
				connection = new DBConnection();
			}
			if(Integer.valueOf(memcache.getStats().get(DBConnection.isa).get("evictions"))!=evictions.count()) //update evictions in memcache
			{
				evictions.clear(); //reset evictions, add the number necesssary
				evictions.inc(Integer.valueOf(memcache.getStats().get(DBConnection.isa).get("evictions")));
			}
			if(memcache.get(partyName)!=null) //so if memcache contains a key pointing to party information
			{
				if(Integer.valueOf(DBConnection.memcache.getStats().get(DBConnection.isa). //update hits
						get("get_hits"))!=getHits)
				{
					getHits = Integer.valueOf(DBConnection.memcache.getStats().get(DBConnection.isa).
							get("get_hits"));
					hits.mark(getHits);
				}
				if(getCalls!=Integer.valueOf(DBConnection.memcache.getStats().get(DBConnection.isa). //update calls
						get("cmd_get")))
				{
					getCalls=Integer.valueOf(DBConnection.memcache.getStats().get(DBConnection.isa).
							get("cmd_get"));
					calls.mark(getCalls);
				}
				return (String) memcache.get(partyName); //return from memcache it stores as objects so cast it
			}
			else{
				try
				{
					String query = "SELECT * FROM xRM WHERE PARTY_NAME=?"; //query database
					ps = con.prepareStatement(query);
					ps.setString(1, partyName);
					resultSet = ps.executeQuery();
					meta = resultSet.getMetaData();
					String columnName, value;
					resultSet.next(); //move it to the first row
					for(int j=1;j<=meta.getColumnCount();j++) //necessary to start at j=1 because of MySQL index starting at 1
					{
						columnName = meta.getColumnLabel(j);
						value = resultSet.getString(columnName);
						localParty.getPartyInfo().put(columnName, value); //this is the hashmap within the party that keeps 
						//track of the individual values. The column Name = label, value is the value
					}
				}
				catch(Exception e)
				{
					e.printStackTrace();
				}
				try {
					
					string=jsonMapper.writeValueAsString(localParty.getPartyInfo()); //hashmap as json string
					
				} catch (JsonProcessingException e) {
					e.printStackTrace();
				} catch (Exception e) {
					e.printStackTrace();
				}
				DBConnection.memcache.add(partyName, MAX_MEMCACHED_EXPIRATION, string); //add to memcache
				return string;
			}
			
		}