愤怒的大鸟 发表于 2015-1-18 11:20:31

JAVA编程:Esper处置嵌套POJO事务仓酷云

用java开发web只要两本书:一本是关于java基础的,一本是关于jsp、servlet的就可以了。开发周期长,我就来讲句题外话,现在有很多思想都是通过java来展现。这篇博客先容怎样使用Esper来处置POJO的嵌套事务。经由过程上篇博客已晓得详细的Esper引擎是怎样处置POJO对象的了,实在关于嵌套的POJO对象处置也是一样的。
起首创建POJO嵌套对象。

[*]importjava.util.List;
[*]importjava.util.Map;
[*]
[*]publicclassPerson{
[*]
[*]Stringname;
[*]
[*]intage;
[*]
[*]List<Child>children;
[*]
[*]Map<String,Integer>phones;
[*]
[*]Addressaddress;
[*]
[*]publicStringgetName(){
[*]returnname;
[*]}
[*]
[*]publicvoidsetName(Stringname){
[*]this.name=name;
[*]}
[*]
[*]publicintgetAge(){
[*]returnage;
[*]}
[*]
[*]publicvoidsetAge(intage){
[*]this.age=age;
[*]}
[*]
[*]publicList<Child>getChildren(){
[*]returnchildren;
[*]}
[*]
[*]publicvoidsetChildren(List<Child>children){
[*]this.children=children;
[*]}
[*]
[*]publicMap<String,Integer>getPhones(){
[*]returnphones;
[*]}
[*]
[*]publicvoidsetPhones(Map<String,Integer>phones){
[*]this.phones=phones;
[*]}
[*]
[*]publicAddressgetAddress(){
[*]returnaddress;
[*]}
[*]
[*]publicvoidsetAddress(Addressaddress){
[*]this.address=address;
[*]}
[*]}
[*]
[*]packagetest;
[*]
[*]publicclassChild{
[*]
[*]Stringname;
[*]intgender;
[*]
[*]publicStringgetName(){
[*]returnname;
[*]}
[*]
[*]publicvoidsetName(Stringname){
[*]this.name=name;
[*]}
[*]
[*]publicintgetGender(){
[*]returngender;
[*]}
[*]
[*]publicvoidsetGender(intgender){
[*]this.gender=gender;
[*]}
[*]}
[*]
[*]packagetest;
[*]
[*]publicclassAddress{
[*]
[*]Stringroad;
[*]Stringstreet;
[*]inthouseNo;
[*]
[*]publicStringgetRoad(){
[*]returnroad;
[*]}
[*]
[*]publicvoidsetRoad(Stringroad){
[*]this.road=road;
[*]}
[*]
[*]publicStringgetStreet(){
[*]returnstreet;
[*]}
[*]
[*]publicvoidsetStreet(Stringstreet){
[*]this.street=street;
[*]}
[*]
[*]publicintgetHouseNo(){
[*]returnhouseNo;
[*]}
[*]
[*]publicvoidsetHouseNo(inthouseNo){
[*]this.houseNo=houseNo;
[*]}
[*]}
有了这个嵌套的POJO对象以后就和上篇博客的操纵一样了,就是开启引擎,誊写响应的营业EPL语句举行事务监听。

[*]classAppleListenerimplementsUpdateListener{
[*]
[*]@Override
[*]publicvoidupdate(EventBean[]newEvents,EventBean[]oldEvents){
[*]if(newEvents!=null){
[*]Integerage=(Integer)newEvents.get("age");
[*]//List<Child>children=(List<Child>)newEvents.get("children");
[*]//Addressaddress=(Address)newEvents.get("address");
[*]System.out.println("ageis:"+age);
[*]/*for(inti=0;i<children.size();i++){
[*]
[*]}
[*]System.out.println(age);*/
[*]}
[*]}
[*]
[*]}
[*]
[*]Stringepl="selectage,children,addressfrom"+person
[*]+"wherename=cjq";
这时候候运转以后把持台就会输入,

详细的POJO嵌套对象进进监听代码以下:

[*]publicstaticvoidmain(String[]args){
[*]
[*]EPServiceProviderepService=EPServiceProviderManager
[*].getDefaultProvider();
[*]
[*]EPAdministratoradmin=epService.getEPAdministrator();
[*]
[*]Stringperson=Person.class.getName();
[*]
[*]Stringepl="selectage,children,addressfrom"+person
[*]+"wherename=cjq";
[*]
[*]EPStatementstate=admin.createEPL(epl);
[*]state.addListener(newAppleListener());
[*]
[*]EPRuntimeruntime=epService.getEPRuntime();
[*]
[*]Personperson1=newPerson();
[*]
[*]Addressaddress1=newAddress();
[*]address1.setHouseNo(1);
[*]address1.setRoad("shangdi30");
[*]address1.setStreet("shangdi30");
[*]person1.setAddress(address1);
[*]
[*]person1.setAge(7);
[*]
[*]List<Child>children1=newArrayList<Child>();
[*]
[*]Childchild11=newChild();
[*]child11.setGender(1);
[*]child11.setName("x");
[*]Childchild12=newChild();
[*]child12.setGender(2);
[*]child12.setName("y");
[*]Childchild13=newChild();
[*]child13.setGender(3);
[*]child13.setName("z");
[*]
[*]children1.add(child11);
[*]children1.add(child12);
[*]children1.add(child13);
[*]
[*]person1.setChildren(children1);
[*]
[*]person1.setName("cjq");
[*]
[*]Map<String,Integer>phones1=newHashMap<String,Integer>();
[*]
[*]phones1.put("zhuzhai",1234567);
[*]phones1.put("jiating",2345678);
[*]
[*]person1.setPhones(phones1);
[*]
[*]runtime.sendEvent(person1);
[*]
[*]Personperson2=newPerson();
[*]
[*]Addressaddress2=newAddress();
[*]address2.setHouseNo(1);
[*]address2.setRoad("shangdi30");
[*]address2.setStreet("shangdi30");
[*]person2.setAddress(address2);
[*]
[*]person2.setAge(11);
[*]
[*]List<Child>children2=newArrayList<Child>();
[*]
[*]Childchild21=newChild();
[*]child21.setGender(1);
[*]child21.setName("x");
[*]Childchild22=newChild();
[*]child22.setGender(2);
[*]child22.setName("y");
[*]Childchild23=newChild();
[*]child23.setGender(3);
[*]child23.setName("z");
[*]
[*]children2.add(child21);
[*]children2.add(child22);
[*]children2.add(child23);
[*]
[*]person2.setChildren(children2);
[*]
[*]person2.setName("cjq");
[*]
[*]Map<String,Integer>phones2=newHashMap<String,Integer>();
[*]
[*]phones2.put("zhuzhai",1234567);
[*]phones2.put("jiating",2345678);
[*]
[*]person2.setPhones(phones2);
[*]
[*]runtime.sendEvent(person2);
[*]
[*]Personperson3=newPerson();
[*]
[*]Addressaddress3=newAddress();
[*]address3.setHouseNo(1);
[*]address3.setRoad("shangdi30");
[*]address3.setStreet("shangdi30");
[*]person3.setAddress(address3);
[*]
[*]person3.setAge(12);
[*]
[*]List<Child>children3=newArrayList<Child>();
[*]
[*]Childchild31=newChild();
[*]child31.setGender(1);
[*]child31.setName("x");
[*]Childchild32=newChild();
[*]child32.setGender(2);
[*]child32.setName("y");
[*]Childchild33=newChild();
[*]child33.setGender(3);
[*]child33.setName("z");
[*]
[*]children3.add(child31);
[*]children3.add(child32);
[*]children3.add(child33);
[*]
[*]person3.setChildren(children3);
[*]
[*]person3.setName("cjq2");
[*]
[*]Map<String,Integer>phones3=newHashMap<String,Integer>();
[*]
[*]phones3.put("zhuzhai",1234567);
[*]phones3.put("jiating",2345678);
[*]
[*]person3.setPhones(phones3);
[*]
[*]runtime.sendEvent(person3);
[*]}
实在到这里应当对esper处置事务加倍明晰了然了,下篇先容Map事务的esper引擎处置。

轮性能微软曾做过一个例子,就是同一个项目用java和.net网页编程来作,结果开发周期,.net网页编程是java的一半,性能java是.net网页编程的十分之一,代码量java是.net网页编程的三倍。呵呵,这说明了什么,.net网页编程的全方位比java好。但是有的人说.net网页编程不能跨平台,这个问题我和我同学曾讨论过,都认为微软的.net网页编程很可能早都可以跨平台了,但是微软为了保护他们的操作系统,所以才没有推出跨平台的.net网页编程,只是推出了跨语言的.net网页编程,

只想知道 发表于 2015-1-20 20:47:46

是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言

活着的死人 发表于 2015-1-24 11:24:32

是一种为 Internet发展的计算机语言

爱飞 发表于 2015-1-24 16:47:05

吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧

因胸联盟 发表于 2015-2-2 11:06:44

应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展

莫相离 发表于 2015-2-18 05:32:38

象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。

蒙在股里 发表于 2015-2-24 22:02:54

是一种使用者不需花费很多时间学习的语言

深爱那片海 发表于 2015-3-1 22:16:20

Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)

柔情似水 发表于 2015-3-6 19:42:24

是一种语言,用以产生「小应用程序(Applet(s))

再现理想 发表于 2015-3-6 21:57:41

你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。

再见西城 发表于 2015-3-9 20:45:02

是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能

愤怒的大鸟 发表于 2015-3-17 01:07:53

在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

金色的骷髅 发表于 2015-3-23 10:14:39

Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
页: [1]
查看完整版本: JAVA编程:Esper处置嵌套POJO事务仓酷云