Java 如何将2个数据库表加载到同一个Gridgain缓存中
我在数据库中有两个表department(dept_id和dept)和employee(emp_id、dept_id、firstname、lastname),我想将它们加载到缓存中。我使用了模式导入工具,它生成了CacheConfig.java、DepartmentKey.java、Department.java、Employee.java和EmployeeKey.java文件。现在,如何使用这两个表加载缓存 以下是片段:Java 如何将2个数据库表加载到同一个Gridgain缓存中,java,database,caching,gridgain,Java,Database,Caching,Gridgain,我在数据库中有两个表department(dept_id和dept)和employee(emp_id、dept_id、firstname、lastname),我想将它们加载到缓存中。我使用了模式导入工具,它生成了CacheConfig.java、DepartmentKey.java、Department.java、Employee.java和EmployeeKey.java文件。现在,如何使用这两个表加载缓存 以下是片段: private static class MySQLDemoStore
private static class MySQLDemoStoreFactory<K, V> extends CacheJdbcPojoStoreFactory<K, V> {
//{@inheritDoc}
@Override public CacheJdbcPojoStore<K, V> create() {
MysqlDataSource dataSource = new MysqlDataSource();
dataSource.setURL("jdbc:mysql://localhost/DB");
dataSource.setUser("root");
dataSource.setPassword("pass");
setDataSource(dataSource);
return super.create();
}
}
私有静态类MySQLDemoStoreFactory扩展了CacheJdbcPojoStoreFactory{
//{@inheritardoc}
@重写公共缓存jdbcpojostore create(){
MysqlDataSource dataSource=新的MysqlDataSource();
setURL(“jdbc:mysql://localhost/DB");
setUser(“根”);
dataSource.setPassword(“pass”);
setDataSource(数据源);
返回super.create();
}
}
然后在main中,要加载缓存:
try (Ignite ignite = Ignition.start("examples/config/example-ignite.xml")) {
// Configure cache store.
CacheConfiguration<EmployeeKey, Employee> cfg =
CacheConfig.cache("EmpCache", new MySQLDemoStoreFactory<EmployeeKey, Employee>());
try (IgniteCache<EmployeeKey, Employee> cache = ignite.getOrCreateCache(cfg)) {
// Preload cache from database.
preload(cache);
try(Ignite Ignite=Ignition.start(“examples/config/example Ignite.xml”){
//配置缓存存储。
缓存配置cfg=
CacheConfig.cache(“EmpCache”,新的MySQLDemoStoreFactory());
try(IgniteCache cache=ignite.getOrCreateCache(cfg)){
//从数据库预加载缓存。
预加载(缓存);
这只会将其加载到Employee表中,对吗?如何将其同时加载到Department和Employee表中?我相信Ignite用户列表中回答了这个问题: