Win a copy of Programmer's Guide to Java SE 8 Oracle Certified Associate (OCA) this week in the OCAJP forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

EhCache Sample Code

 
kritika ram
Greenhorn
Posts: 12
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I have to write sample code for Ehcache which loads values into the cache from the database automatically if it is not present in cache.

I have a model which calls the DAO. The DAO has the implementation of creating the cache based on the ehcache.xml configuration. I fail to see the connection between the DAO and the CacheEntryFactory which has a method createEntry() which is supposed to load the cache with the values. Is EhCache supposed to call creatEntry() internally ? If so, it is not calling and nothing gets printed on the console.

Iam attaching the codes here. Sorry if it is too long. Thanks for all the help.

CacheModel.java

public class CacheModel
{
public static void testCache() throws Exception
{

VistaCacheDAO sampledao = new VistaCacheDAO();
VistaCacheVO VO = sampledao.fetchContent(1);
String name = VO.getName();
int age = VO.getAge();
System.out.println ("Name :");
System.out.println (name);
System.out.println ("Age :");
System.out.println (age);
}
}

CacheFactory.java

public class CacheFactory implements CacheEntryFactory
{

public CacheFactory()
{

}

public Object createEntry(Object key) throws Exception
{
CacheEntryKey Key = (CacheEntryKey) key;
int new_ID = Key.getID();
System.out.println(new_ID);
CacheVO VO = new CacheVO();
String query = null;
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(
"jdbc:mysql://xxxxxxxx:xxxx/xxxxxx", "root", "root");
Statement st = con.createStatement();
ResultSet rs = null;
query = "select Name, Age from testcache where ID="+ new_ID;
rs = st.executeQuery(query);

while(rs.next())
{
VO.setAge(rs.getInt("Age"));
VO.setName(rs.getString("Name"));
}

return VO;
}
}

CacheDAO.java

public class CacheDAO
{

public CacheVO fetchContent(int ID) throws Exception
{
CacheVO VO = null;
CacheEntryKey key = new CacheEntryKey();
key.setID(ID);
CacheManager samplemanager = CacheManager
.getInstance("D:/ehcache.xml");
Cache cache = samplemanager
.getCache("sampleCache1");
Serializable value = cache.get(key);
VO = (VistaCacheVO) value;
return VO;
}
}

CacheEntryKey.java

public class CacheEntryKey implements Serializable
{
private int ID;

public int getID()
{
return ID;
}

public void setID(int id)
{
ID = id;
}
}

CacheVO.java

public class CacheVO implements Serializable
{
private int Age;

private String Name;

public String getName()
{
return Name;
}

public void setName(String name)
{
Name = name;
}

public int getAge()
{
return Age;
}

public void setAge(int age)
{
Age = age;
}

}
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic