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));
        }
    }
}

运行MyApp.java

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值