Example: Create, Read, Update, Delete

Note: The following description focuses on code snippets from the full code example, which is available at the /code-samples/src/ location in the installed product kit.

The Create, Read, Update, and Delete (CRUD) example demonstrates basic create, read, update and delete operations.

The following example creates a data store that is configured to use 128 MB of heap memory:

Configuration managerConfiguration = new Configuration(); 
managerConfiguration.name("config") 
    .terracotta(new TerracottaClientConfiguration().url("localhost:9510")) 
    .cache(new CacheConfiguration() 
        .name("bigMemory-crud") 
        .maxBytesLocalHeap(128, MemoryUnit.MEGABYTES) 
        .terracotta(new TerracottaConfiguration()) 
    ); 
CacheManager manager = CacheManager.create(managerConfiguration); 
Cache bigMemory = manager.getCache("bigMemory-crud");

Now that you have a BigMemory instance configured and available, you can start creating data in it:

final Person timDoe = new Person("Tim Doe", 35, Person.Gender.MALE, 
    "eck street", "San Mateo", "CA"); 
bigMemory.put(new Element("1", timDoe));

Then, you can read data from it:

final Element element = bigMemory.get("1"); 
System.out.println("The value for key 1 is  " + element.getObjectValue());

And update it:

final Person pamelaJones = new Person("Pamela Jones", 23, Person.Gender.FEMALE, 
    "berry st", "Parsippany", "LA"); 
bigMemory.put(new Element("1", pamelaJones)); 
final Element updated = bigMemory.get("1"); 
System.out.println("The value for key 1 is now " + updated.getObjectValue() + 
                     ". key 1 has been updated.");

And delete it:

bigMemory.remove("1"); 
System.out.println("Try to retrieve key 1."); 
final Element removed = bigMemory.get("1"); 
System.out.println("Value for key 1 is " + removed + 
                   ". Key 1 has been deleted.");

You can also create or update multiple entries at once:

Collection<Element> elements = new ArrayList<Element>(); 
elements.add(new Element("1", new Person("Jane Doe", 35, 
    Person.Gender.FEMALE, "eck street", "San Mateo", "CA"))); 
elements.add(new Element("2", new Person("Marie Antoinette", 23, 
    Person.Gender.FEMALE, "berry st", "Parsippany", "LA"))); 
elements.add(new Element("3", new Person("John Smith", 25, 
    Person.Gender.MALE, "big wig", "Beverly Hills", "NJ"))); 
elements.add(new Element("4", new Person("Paul Dupont", 25, 
    Person.Gender.MALE, "big wig", "Beverly Hills", "NJ"))); 
elements.add(new Element("5", new Person("Juliet Capulet", 25, 
    Person.Gender.FEMALE, "big wig", "Beverly Hills", "NJ"))); 
bigMemory.putAll(elements);

And read multiple entries at once:

final Map<Object, Element> elementsMap = bigMemory.getAll( 
    Arrays.asList("1", "2", "3"));

And delete multiple entries at once:

bigMemory.removeAll(Arrays.asList("1", "2", "3"));

And delete everything at once:

bigMemory.removeAll();