Ignite-JAVA调用例子
示例为IDEA的maven工程
例子1
前提
利用xftp把“Ignite(一)-Centos7安装部署”的服务器ignite复制到本地目录“D:\YDGreen”
代码
pom.xml
<properties>
<ignite.version>2.6.0</ignite.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-core</artifactId>
<version>${ignite.version}</version>
</dependency>
<dependency>
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-spring</artifactId>
<version>${ignite.version}</version>
</dependency>
<dependency>
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-indexing</artifactId>
<version>${ignite.version}</version>
</dependency>
<dependency>
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-web</artifactId>
<version>${ignite.version}</version>
</dependency>
<dependency>
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-ssh</artifactId>
<version>${ignite.version}</version>
</dependency>
</dependencies>
Client1.java
package com.ydfind.ignite;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCache;
import org.apache.ignite.Ignition;
import org.apache.ignite.cache.CacheAtomicityMode;
import org.apache.ignite.configuration.CacheConfiguration;
public class Client1 {
public static void main(String[] args){
Ignite ignite = Ignition.start("D:\\YDGreen\\apache-ignite-fabric-2.6.0-bin\\examples\\config\\example-cache.xml");
CacheConfiguration<String, String> cfg = new CacheConfiguration<String, String>();
cfg.setName("ydfind");
cfg.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL);
cfg.setIndexedTypes(String.class, String.class);
ignite.getOrCreateCache(cfg);
// 存入
IgniteCache<String, String> cache = ignite.cache("ydfind");
cache.put("name","this is a cache!");
}
}
Client2.java
package com.ydfind.ignite;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCache;
import org.apache.ignite.Ignition;
import org.apache.ignite.cache.CacheAtomicityMode;
import org.apache.ignite.configuration.CacheConfiguration;
public class Client2 {
public static void main(String[] args){
Ignition.setClientMode(true);
Ignite ignite = Ignition.start("D:\\YDGreen\\apache-ignite-fabric-2.6.0-bin\\examples\\config\\example-cache.xml");
CacheConfiguration<String, String> cfg = new CacheConfiguration<String, String>();
cfg.setName("ydfind");
cfg.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL);
cfg.setIndexedTypes(String.class, String.class);
ignite.getOrCreateCache(cfg);
IgniteCache<String, String> cache = ignite.cache("ydfind");
System.out.println("---------------------取出的值为-----------------------" + cache.get("name"));
}
}
运行
运行Client1.java, 再运行Client2.java,可以看到Client2.java输出:
例子2
前提
按照“Ignite(一)-Centos7安装部署”安装ignite;
代码
pom.xml
<dependencies>
<dependency>
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-core</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-spring</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-indexing</artifactId>
<version>2.6.0</version>
</dependency>
</dependencies>
FieldEntity.java
package com.ydfind.ignite;
import lombok.Data;
import org.apache.ignite.cache.query.annotations.QuerySqlField;
@Data
public class FieldEntity
{
@QuerySqlField(index = true)
private int id;
@QuerySqlField
private String name;
private int level;
public FieldEntity(int id, String name)
{
this.id = id;
this.name = name;
}
@Override
public String toString() {
return "Class [id=" + id + ", name=" + name + ", level=" + level + "]";
}
}
Student.java
package com.ydfind.ignite;
import lombok.Data;
import org.apache.ignite.cache.query.annotations.QuerySqlField;
@Data
public class Student{
@QuerySqlField
private int classId;
@QuerySqlField
private String name;
@QuerySqlField
private int age;
public Student(int classId, String name, int age)
{
this.classId = classId;
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Student [classId=" + classId + ", name=" + name + ", age="
+ age + "]";
}
}
MyApp.java
package com.ydfind.ignite;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCache;
import org.apache.ignite.Ignition;
import org.apache.ignite.cache.CacheMode;
import org.apache.ignite.cache.query.QueryCursor;
import org.apache.ignite.cache.query.SqlFieldsQuery;
import org.apache.ignite.configuration.CacheConfiguration;
import java.util.List;
public class MyApp {
public static void main(String[] args)
{
Ignite ignite = Ignition.start();
CacheConfiguration<Integer, FieldEntity> classCfg = new CacheConfiguration<Integer, FieldEntity>();
classCfg.setName("CLA");
classCfg.setCacheMode(CacheMode.PARTITIONED);
classCfg.setIndexedTypes(Integer.class, FieldEntity.class);
IgniteCache<Integer, FieldEntity> classCache = ignite.getOrCreateCache(classCfg);
classCache.put(1, new FieldEntity(1, "五年级一班"));
classCache.put(2, new FieldEntity(2, "五年级二班"));
CacheConfiguration<Integer, Student> stuCfg = new CacheConfiguration<Integer, Student>();
stuCfg.setName("STU");
stuCfg.setCacheMode(CacheMode.PARTITIONED);
stuCfg.setIndexedTypes(Integer.class, Student.class);
IgniteCache<Integer, Student> stuCache = ignite.getOrCreateCache(stuCfg);
stuCache.put(1, new Student(1, "张三", 10));
stuCache.put(2, new Student(1, "李四", 11));
stuCache.put(3, new Student(2, "王五", 11));
stuCache.put(4, new Student(2, "胜七", 10));
SqlFieldsQuery sql = new SqlFieldsQuery(
"select concat(stu.classId, '----', stu.name) as stuinfo"
+ " "
+ "from Student as stu "
+ "");
QueryCursor<List<?>> cursor = stuCache.query(sql);
for (List<?> row : cursor)
{
System.out.println("学生信息:" + row.get(0));
}
SqlFieldsQuery sql1 = new SqlFieldsQuery(
"select concat(cla.id, '----', cla.name) as clainfo"
+ ", concat(stu.name, '----', stu.age) as stuinfo "
+ "from FieldEntity as cla, STU.Student as stu "
+ "where cla.id = stu.classId");
QueryCursor<List<?>> cursor1 = classCache.query(sql1);
for (List<?> row : cursor1)
{
System.out.println("班级信息:" + row.get(0) + ", 学生信息:" + row.get(1));
}
}
}