1、pojo

package com.ebc.eventtype.pojo.pojo1;

import cn.hutool.core.collection.CollUtil;
import com.espertech.esper.client.*;
import lombok.*; import java.util.List;
import java.util.Map; /**
*
* @author yaoyuan2
* @date 2019/3/21
*/
public class PojoTest {
static EPServiceProvider epService = EPServiceProviderManager.getDefaultProvider();
static EPAdministrator admin = epService.getEPAdministrator(); public static void main(String[] args) {
String epl = "select age,children,address from com.ebc.eventtype.pojo.pojo1.Person where name=\"yaoyuan\"";
EPStatement state = admin.createEPL(epl);
state.addListener(new UpdateListener() {
@Override
public void update(EventBean[] newEvents, EventBean[] oldEvents) {
if (newEvents != null) {
Address address = (Address)newEvents[0].get("address");
List<Child> children = (List<Child>)newEvents[0].get("children");
Integer age = (Integer)newEvents[0].get("age"); System.out.println("address =" + address.getRoad());
System.out.println("children =" + children);
System.out.println("age =" + age);
}
}
});
EPRuntime runtime = epService.getEPRuntime(); Person p1 = new Person();
p1.setName("yaoyuan");
p1.setAge(20);
p1.setChildren(CollUtil.newArrayList(new Child("c1", 1), new Child("c2", 2)));
p1.setAddress(new Address("解放道", "食品大街", 30));
runtime.sendEvent(p1); Person p2 = new Person();
p2.setName("yaoyuan2");
p2.setAge(21);
p2.setChildren(CollUtil.newArrayList(new Child("c1", 1), new Child("c2", 2)));
p2.setAddress(new Address("燕顺路", "开发区大街", 31));
runtime.sendEvent(p2);
}
}
@Setter
@Getter
@ToString
class Person {
String name;
int age;
List<Child> children;
Map<String,Integer> phones;
Address address;
} @Setter
@Getter
@ToString
@AllArgsConstructor
@NoArgsConstructor
class Child {
String name;
int gender; } @Setter
@Getter
@ToString
@AllArgsConstructor
@NoArgsConstructor
class Address {
String road;
String street;
int houseNo;
}

输出

address =解放道
children =[Child(name=c1, gender=1), Child(name=c2, gender=2)]
age =20

2、Map

package com.ebc.eventtype.map;

import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Console;
import com.espertech.esper.client.*; import java.util.HashMap;
import java.util.List;
import java.util.Map; /**
* @author yaoyuan2
* @date 2019/3/22
*/
public class MapTest {
public static void main(String[] args) {
EPServiceProvider epService = EPServiceProviderManager.getDefaultProvider();
EPAdministrator admin = epService.getEPAdministrator();
// Person定义
Map<String,Object> person = new HashMap<String,Object>();
person.put("name", String.class);
person.put("age", int.class);
person.put("children", List.class);
person.put("phones", Map.class);
// 注册Person到Esper
admin.getConfiguration().addEventType("MyPersonMap", person); String epl = "select name,children from MyPersonMap where name=\"yaoyuan2\"";
EPStatement state = admin.createEPL(epl);
state.addListener(new UpdateListener() {
@Override
public void update(EventBean[] newEvents, EventBean[] oldEvents) {
if (newEvents != null) {
Console.log("name={},children={}",newEvents[0].get("name"),newEvents[0].get("children"));
}
}
});
EPRuntime runtime = epService.getEPRuntime();
Map<String, Object> map1 = new HashMap<String, Object>();
map1.put("name", "yaoyuan2");
map1.put("children", CollUtil.newArrayList("大毛","二毛"));
runtime.sendEvent(map1, "MyPersonMap"); }
}

输出

name=yaoyuan2,children=[大毛, 二毛]

3、ObjectArray

package com.ebc.eventtype.array;

import com.espertech.esper.client.EPAdministrator;
import com.espertech.esper.client.EPServiceProvider;
import com.espertech.esper.client.EPServiceProviderManager;
import com.espertech.esper.client.EventType; import java.util.Arrays;
import java.util.Map; /**
* @author yaoyuan2
* @date 2019/3/22
*/
public class ObjectArrayTest {
public static void main(String[] args) {
EPServiceProvider epService = EPServiceProviderManager.getDefaultProvider();
EPAdministrator admin = epService.getEPAdministrator(); // Address定义
String[] addressPropNames = { "road", "street", "houseNo" };
Object[] addressPropTypes = { String.class, String.class, int.class }; // Child定义
String[] childPropNames = { "name", "age" };
Object[] childPropTypes = { String.class, int.class }; // Person定义
String[] personPropNames = { "name", "age", "children", "phones", "address" };
Object[] personPropTypes = { String.class, int.class, "Child[]", Map.class, "Address" }; // 注册Address到Esper
admin.getConfiguration().addEventType("Address", addressPropNames, addressPropTypes);
// 注册Child到Esper
admin.getConfiguration().addEventType("Child", childPropNames, childPropTypes);
// 注册Person到Esper
admin.getConfiguration().addEventType("Person", personPropNames, personPropTypes); // 新增一个gender属性
admin.getConfiguration().updateObjectArrayEventType("Person", new String[] { "gender" }, new Object[] { int.class }); /** 输出结果:
* Person props: [name, age, children, phones, address, gender]
*/
EventType event = admin.getConfiguration().getEventType("Person");
System.out.println("Person props: " + Arrays.asList(event.getPropertyNames()));
}
}

输出

Person props: [name, age, children, phones, address, gender]

最新文章

  1. 如何用Azure Web App Services接入微信公众号
  2. java并发J.U.C AtomicReference VS Volatile
  3. codeforces 724D(贪心)
  4. java_jdk_JDK版本切换批处理脚本
  5. Java多线程系列--“JUC线程池”04之 线程池原理(三)
  6. SU Demos-06Selecting Traces
  7. AT&amp;T Assembly for Linux and Mac (sys_exit)
  8. try-catch 示例
  9. 获取表单的初始值,模拟placeholder属性
  10. 20145305 《Java程序设计》实验五
  11. 用python写makefile
  12. web系统架构的演进变化很形象
  13. 在Servlet中使用JSON
  14. MFC逆向-消息响应函数的定位
  15. C# LINQ语法详解
  16. Mobile 抓包,代理
  17. Centos7初始化脚本
  18. metamask源码学习-contentscript.js
  19. * -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]’
  20. mybatis源码解析4---Configuration解析

热门文章

  1. [patl1-046]整除光棍
  2. HDU 6397(2018多校第8场1001) Character Encoding 容斥
  3. libmad介绍
  4. HttpServletResponse和HttpServletRequest详解.RP
  5. 《Head First Servlets & JSP》-6-会话管理-listener etc. demo
  6. WebGoat系列实验Injection Flaws
  7. c#设计模式-单例模式【转】
  8. JavsScript中JSON相关
  9. 【bzoj1030】: [JSOI2007]文本生成器 字符串-AC自动机-DP
  10. 教主的花园 dp