BigMemory 4.4.0 | Tutorials | Basic CRUD
 
Basic CRUD
Now that you've created your first instance of BigMemory with the Ehcache interface, let's exercise its basic CRUD functions.
Create Configuration File
Create a new configuration file called "ehcache-crud.xml" in your classpath and add a new cache called "crud."
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
name="CRUDConfig" maxBytesLocalHeap="64M">
<cache name="hello-world"/>
<cache name="crud"/>
</ehcache>
Notice that the maxByteLocalHeap setting has been moved to the top-level <ehcache> element - BigMemory gives you the ability to sculpt the memory profile of your individual data sets as well as apply bulk settings to all data sets.
Create Crud.java
Create and compile a Java class called Crud:
import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;

public class Crud {
public static void main(final String[] args) {
// Create a cache manager using the factory method
// AND specify the new configuration file
final CacheManager cacheManager =
CacheManager.newInstance(
Crud.class.getResource("/ehcache-crud.xml"));

// Get the "crud" cache from the cache manager...
final Cache dataStore = cacheManager.getCache("crud");

// Set up the first data element...
final String myKey = "My Key";
final String myData = "My Data";
final Element createElement = new Element(myKey, myData);

// CREATE data using the put(Element) method...
dataStore.put(createElement);
System.out.println("Created data: " + createElement);

// READ data using the get(Object) method...
Element readElement = dataStore.get(myKey);
System.out.println("Read data: " + readElement);

// Check to make sure the data is the same...
if (! myData.equals(readElement.getObjectValue())) {
throw new RuntimeException("My data doesn't match!");
}

// UPDATE data by mapping a new value to the same key...
final String myNewData = "My New Data";
final Element updateElement = new Element(myKey, myNewData);
dataStore.put(updateElement);
System.out.println("Updated data: " + updateElement);

// Test to see that the data is updated...
readElement = dataStore.get(myKey);
if (! myNewData.equals(readElement.getObjectValue())) {
throw new RuntimeException("My data doesn't match!");
}

// DELETE data using the remove(Object) method...
final boolean wasRemoved = dataStore.remove(myKey);
System.out.println("Removed data: " + wasRemoved);
if (! wasRemoved) {
throw new RuntimeException("My data wasn't removed!");
}

// Be polite and release the CacheManager resources...
cacheManager.shutdown();
}
}
Execute
When you run the Crud program in a terminal, you should see output like this:
Created data: [ key = My Key, value=My Data, version=1, hitCount=0,

CreationTime = 1361401376761, LastAccessTime = 1361401376761 ]

Read data: [ key = My Key, value=My Data, version=1, hitCount=1,

CreationTime = 1361401376761, LastAccessTime = 1361401376775 ]

Updated data: [ key = My Key, value=My New Data, version=1, hitCount=0,

CreationTime = 1361401376776, LastAccessTime = 1361401376776 ]

Removed data: true
Next Step
Next Step: Search ›