仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 585|回复: 12
打印 上一主题 下一主题

[学习教程] JAVA编程:Esper处置嵌套POJO事务仓酷云

[复制链接]
愤怒的大鸟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:20:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
用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[0].get("age");
  • //List<Child>children=(List<Child>)newEvents[0].get("children");
  • //Addressaddress=(Address)newEvents[0].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代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
因胸联盟 该用户已被删除
5#
发表于 2015-2-2 11:06:44 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
莫相离 该用户已被删除
6#
发表于 2015-2-18 05:32:38 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
蒙在股里 该用户已被删除
7#
发表于 2015-2-24 22:02:54 | 只看该作者
是一种使用者不需花费很多时间学习的语言
深爱那片海 该用户已被删除
8#
发表于 2015-3-1 22:16:20 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
柔情似水 该用户已被删除
9#
发表于 2015-3-6 19:42:24 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
再现理想 该用户已被删除
10#
发表于 2015-3-6 21:57:41 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
再见西城 该用户已被删除
11#
发表于 2015-3-9 20:45:02 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
愤怒的大鸟 该用户已被删除
12#
 楼主| 发表于 2015-3-17 01:07:53 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
金色的骷髅 该用户已被删除
13#
发表于 2015-3-23 10:14:39 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 04:30

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表