1、实验2 EOS入门与进阶目的和要求1 了解EOS集成工作环境;2 了解EOS简单开发流程;3 在EOS中实现数据库连接;4 在EOS中实现对数据库的操纵。背景知识常用术语介绍 业务逻辑由开始节点、结束节点、运算逻辑和连线等组成的、能够完成一定功能的、通过EOS开发环境开发的多个运算逻辑的图形化逻辑流程。业务逻辑通过调用运算逻辑(如查询数据),将处理后的数据返回给展现逻辑。业务逻辑还可以调用其它的业务逻辑,这种被业务逻辑所调用的业务逻辑叫子业务逻辑。基本的业务逻辑如图2.0-1所表示:图2.0-1 基本的业务逻辑 展现逻辑由开始节点、结束节点、业务逻辑节点(表示被调用的业务逻辑,是可选节点)、页
2、面节点和连线等组成的、最终生成用户界面的图形化描述的逻辑流程。展现逻辑不能调用运算逻辑,而只能通过调用业务逻辑完成业务功能(如查询数据),业务逻辑返回数据后,展现逻辑调用页面逻辑生成用户界面。基本的展现逻辑如图2.0-2所示:开始节点 运算逻辑 结束节点连线开始节点 连线 业务逻辑 页面逻辑 结束节点管理信息系统实验指导 2 / 39图2.0-2 基本的展现逻辑 页面逻辑也即Jsp页面。主要用于生成用户界面,基本由HTML、Jsp Tag、CSS和客户端Javascript等语言代码组成。 数据逻辑用于完成数据模型定义的相关描述文件称为数据逻辑。数据逻辑包括数据实体、数据树和查询类型数据实体三
3、种类型。1、 数据实体:用于表示数据库物理的表、视图等的定义。对于表类型的数据实体,可以进行查询、增加、修改和删除的操作;对视图类型的数据实体,只能进行查询操作。2、 数据树:用来表达 EOS 数据总线结构,节点由数据实体和普通节点两种,数据实体可以直接把已建好的数据实体托拽过来。3、 查询类型数据实体:顾名思义,就是用于查询的数据实体,是EOS 数据总线的一种数据格式,功能相当与数据库中的视图,但是不需要在数据库中建视图,一般用于多表联合查询操作。 运算逻辑又叫BL方法,基于JAVA代码实现,用于完成特定的计算处理任务。EOS构件库提供基础的运算逻辑如数据查询、XML节点操作、日期时间操作、
4、字符串操作等。 连线连接两图元之间的、用于表示程序执行方向的连线。当一个程序流程出现多条线路时,用户必须在连线上设置相应的条件以决定程序的流向。 EOS 构件包括业务构件、展现构件、页面构件、数据构件、运算构件、工作流构件等六种构件,每一种构件都包括一个或多个相应的逻辑(如业务构件包括一个或多个业务逻辑)。 EOS 构件包由以上六种构件(或者其中的几种)组成,是EOS系统发布、复用的基本单位,它由一组相关的EOS构件组成,能够完成相对独立、完整的业务功能。EOS构件包中可以包含一个或多个的EOS 构件,它相当于一组有关系的构件的容器或命名空间(Namespace)。同一个构件包的构件不能重名。
5、 EOS平台对构件的调用也是首先通过包名来定位构件所在的包。 业务流程工作流的图形化描述,用于完成某个包含人工和自动的业务活动流程的构件,是通过EOS 开发环境开发的工作流的图形化描述。 数据字典 业务字典管理信息系统实验指导 3 / 39内容和步骤1. EOS开发入门出自C语言教程中的“Hello world! ”已经成了所有计算机语言入门教程的经典案例,尽管EOS不是计算机语言,在开始介绍EOS 产品的机制和原理前,还是通过这个经典案例,让我们开始EOS 的最初体验,以便建立对EOS最基本的感性认识,在此基础上我们将一起了解基于EOS 产品进行应用系统开发的有关概念、常识以及运行原理。1.
6、1. Hello World 案例开发1.1.1.案例描述和其他标准的J2EE应用相似,本案例要完成的工作就是:利用业务逻辑获取信息(或者说生成信息“Hello World!”),然后将这些信息在JSP中展示给用户。在本案例的过程中,需要关注的是操作的过程以及过程中所遇到的各个名词或概念,并请将所有疑问带入到后面章节对EOS开发相关原理机制的描述中。1.1.2.“Hello world!”开发步骤在这个例子里我们将利用业务逻辑设置“Hello world!”信息,并通过jsp将这些信息显示在用户界面上。1.1.2.1.启动 EOS Studio通过“开始-程序-Primeton EOS 5-E
7、OS Studio 5.1”启动EOS开发的IDE环境。启动后,点击欢迎页右上角图标,进入到EOS Studio 的工作区(以后启动会自动进入到工作区界面)。1.1.2.2.创建项目EOSTriping1) 进入 EOS Studio 开发透视图;单击主菜单项“文件”选择“新建”-“空EOS项目”,如图2.1-1所示。 管理信息系统实验指导 4 / 39图2.1-1 创建项目2) 在弹出的“创建空 EOS 项目”视图中,配置相关参数。“项目名称”:EOSTriping,如图 2.1-2 所示。图2.1-2 项目属性对话框3) 单击【完成】按钮,系统完成该项目框架的创建后退出。创建结果如图 2.
8、1-3所示:1、输入 EOSTriping2、点击【完成】按钮点击此处切换透视图管理信息系统实验指导 5 / 39图2.1-3 完成项目创建【说明】新建项目时,缺省会建立一个pkg的构件包,你可以通过鼠标右键删除这个构件包。1.1.2.3. 创建构件包1) 在项目资源管理器视图中,单击展开“EOSTriping”项目的右键菜单,选择“新建”- “EOS 构件包”,如图 2.1-4 所示。管理信息系统实验指导 6 / 39图2.1-4 创建构件包2) 在弹出的“创建构件包”视图中,设置相关参数。如图 2.1-5 所示:管理信息系统实验指导 7 / 39图2.1-5 创建构件包3) 构件包名称:H
9、elloWorld ,点击【完成】按钮,结束创建构件包向导。1.1.2.4. 创建业务逻辑1) 在“项目资源管理器视图”中,展开 “EOSTripingHelloWorld biz”构件,在“biz” 构件上点击右键,选择上下文菜单“新建业务逻辑”,如图 2.1-6 所示:点击【完成】按钮输入构件包名称管理信息系统实验指导 8 / 39图2.1-6 创建业务逻辑2) 在弹出的“创建业务逻辑”对话筐中的“文件名”项中输入“bizHelloWorld”,点击完成按钮结束创建业务逻辑向导,如图 2.1-7 所示:管理信息系统实验指导 9 / 39图2.1-7 创建业务逻辑对话框创建“bizHello
10、World”业务逻辑之后,在Studio的“业务逻辑编辑器”会自动将刚刚创建的业务逻辑打开。3) 展开“项目资源管理器”视图中的“引用构件包fcdomBNNode.class”,选中“BL_setNodeValueBatch”运算逻辑,按住鼠标左键,将该运算逻辑拖拽到“bizHelloWorld”编辑区中,如图 2.1-8 所示:点击【完成】按钮输入 bizHelloWorld管理信息系统实验指导 10 / 39图2.1-8 引用构件包结构4) 利用鼠标点选业务逻辑编辑区上“选用板”中的“连接线”工具,点击“开始”图元,然后点击“BL_setNodeValueBatch”图元将“开始”图元和“
11、BL_setNodeValueBatch”图元连接起来。利用相同的方法,将“BL_setNodeValueBatch”图元和结束图元连接起来,最终的业务逻辑如图 2.1-9 所示:管理信息系统实验指导 11 / 39图2.1-9 业务逻辑编辑器5) 双击“BL_setNodeValueBatch”运算逻辑图元,在弹出的“属性设置”对话框中,点击“参数定义”标签页面,输入如图 2.1-10 所示参数:参数 1 节点类型为 EOS Field,节点路径为“show/info”(用户可自定义),参数 2 节点类型为常量,节点值为“Hello world!”(该操作表示将“Hello world!”设
12、置到 show/info 节点下)连接线工具连接线管理信息系统实验指导 12 / 39图2.1-10 运算逻辑参数设置对话框6) 双击业务逻辑编辑器中的“开始”图元,在弹出的“属性设置”对话框中,点击“接口定义”标签页,输入如图 2.1-11 所示的参数:参数 1 节点类型为 EOS Entity(此处也可以设置为 EOS Field),节点路径为 show,表示将设置的 show/info信息输出到调用本业务逻辑的逻辑数据区中。3、点击【确定】按钮1、输入 show/info2、输入 Hello world!管理信息系统实验指导 13 / 39图2.1-11 业务逻辑接口设置对话框7) 点击
13、工具栏中的“保存”按钮或者使用快捷键“Ctrl+S”键保存业务逻辑。1.1.2.5.创建 JSP 页面1) 在“项目资源管理器视图”中,展开 “EOSTripingHelloWorld page”构件,在“page” 构件上点击右键,选择上下文菜单“新建jsp 页面”,Studio 启动页面向导,在弹出的“页面生成向导”对话框中,输入如图 2.1-12 所示参数,点击【完成】按钮结束创建页面对话框:1、点击【插入】按钮2、输入 show3、点击【完成】按钮管理信息系统实验指导 14 / 39图2.1-12 创建页面对话框点击【完成】按钮以后,Studio会提示“要切换到 EOS页面开发 透视图
14、吗?”,点击【是】按钮进入页面开发视图。2) 在页面开发视图的页面编辑器中,输入如下 jsp 代码:3) 点击工具栏“保存”按钮或者使用快捷键“Ctrl+S”保存 jsp 页面。点击【完成】按钮选择独立页面风格输入 helloworld管理信息系统实验指导 15 / 391.1.2.6. 创建展现逻辑1) 创建展现逻辑的步骤和创建业务逻辑的步骤基本一致。在“项目资源管理器视图”中,展开 “EOSTriping HelloWorldpr”构件,在“pr” 构件上点击右键,选择上下文菜单“新建展现逻辑”。再弹出的“创建展现逻辑”对话框中的“文件名”项中输入“prHelloWorld”,点击【完成】
15、按钮。2) 将刚刚创建的业务逻辑“bizHelloWorld”和页面“helloworld.jsp”托拽到展现逻辑编辑器中,点选“选用板”中的“连接线”工具,采用和创建业务逻辑时的方法,依次将“开始”、“bizHelloWorld”、“helloworld.jsp”和“结束”图元连接起来,如图 2.1-13 所示:图2.1-13 展现逻辑编辑器3) 保存刚刚创建的展现逻辑。1.1.2.7. 编译部署1) 保存刚创建编辑的所有文件;2) 点击快捷图标 选择将运行的项目“EOSTriping”,启动服务器,如图2.1-14、15 所示。管理信息系统实验指导 16 / 39图2.1-14图2.1-1
16、5 启动Server1.1.2.8. 运行1) 服务器正常启动后,打开 IE 浏览器 。2) 在 IE 浏览器地址栏输入: http:/localhost:8080/;用系统管理员 sysadmin,密码 000000(或者安装时修改的密码)登陆,进入到主界面,如图 2.1-17 所示 。管理信息系统实验指导 17 / 39图2.1-17 登录后主页面3) 更改地址栏为:http:/localhost:8080/HelloWorld.pr.prHelloWorld.do(注意路径书写方式和大小写),回车;若该项目正常运行,将显示页面如图2.1-18所示。图2.1-18 运行结果管理信息系统实验
17、指导 18 / 391.1.3.案例小结至此,HelloWorld例子开发完成,你一只脚也迈入了奇妙的EOS开发大门,让我们一起继续EOS开发之旅。根据以上小例子,我们已经对在EOS Studio 的开发方式有了一个初步的认识,可以看出使用EOS Studio进行开发的基本开发流程为:1) 创建项目:指定项目名称、项目用的 EOS Server 和 WEB 应用目录。2) 创建构件包:制定构件包名,以目录形式,组织各种构件和逻辑的存放,便于Studio 管理,各种构件的名称是可以修改的。3) 创建业务逻辑:编写逻辑代码,调用运算逻辑(BL 方法)将输入数据进行处理,完成业务逻辑,并将处理结果返
18、回给展现逻辑。4) 创建 JSP 页面:EOS 应用的用户界面,利用 Jsp Tag 将 RequestContext 数据区中的信息显示给用户。5) 创建展现逻辑:控制程序流程的执行,调用业务逻辑获得处理后的信息,然后调用页面逻辑将这些信息返回给用户。6) 编译部署:项目菜单栏中构选了自动构建,保存即编译,部署是调试或运行时 EOS Server 会自动进行热部署。7) 运行案例:在 IE 地址栏中输入“构件包名称.展现构件名.展现逻辑文件名.do”形式的 URL(URL 的大小写要与 Studio 中“构件包名称.展现构件名.展现逻辑文件名”的大小写完全一致),即可完成对 EOS 应用的调
19、用。2. EOS开发进阶通过前面章节的描述,我们对利用EOS Studio开发J2EE应用的步骤有了个大致的了解,也对EOS的原理概念有了一定认识,于是产生了以下几个疑问:1、 真正的应用不象“Hello world!”这么简单,该如何开发一个典型的数据库应用?2、 应用运行过程中,数据是怎么传递的,图形化逻辑中设置的参数与最终运行时数据的传递是什么关系?3、 在 EOS 中,提供了什么方便快捷的手段,来提高应用开发的效率?4、 EOS 提供的向导有何特点?5、 通过 EOS Studio 开发的 J2EE 应用,是如何打包部署的,又是如何实现应用的分布式处理的呢?带着这些问题,本章节将与您一
20、道,基于EOS开发一个简单的小型数据库应用。并在开发过程中,对运行原理和数据传递方式作深入的讲解。2.1. 开发案例描述 案例的基本需求在数据库中存在一个客户资料表,希望通过EOS实现一个简单的客户资料维护的功能,能够进行客户资料的查询、增加、修改、删除。管理信息系统实验指导 19 / 39在查询功能中,以客户姓名、性别、出生日期范围作为查询条件,其中客户姓名为模糊查询,性别为完全匹配查询且通过下拉列表选取查询条件,查询结果要求分页处理。应用开发完成后将其发布部署到另外的应用服务器中。 客户资料表 CUST 的表结构字段名称 数据类型 数据长度是否主键 备 注c_id char 10 YES
21、客户编号c_name nvarchar 20 NO 客户姓名c_sex char 1 NO 1-男,2-女,3-未知c_birthday date 8 NO 出生日期c_tel1 nvarchar 15 NO 联系电话1c_tel2 nvarchar 15 联系电话2c_addr nvarchar 50 NO 联系地址c_typ char 1 NO IINSURED被保人PPOLICY OWNER投保人注意:为了方便EOS提供的向导处理,数据库表必须定义主键字段,因为通过EOS的数据实体修改、删除数据是根据主键来做为匹配条件的。2.2. 开发步骤2.2.1. 准备数据 在实验一中,已创建保险数
22、据库 insurance,现将其用户导入 EOS 数据库 打开 SQL Server2000,选中数据库 insurance,点击右键选择“所有任务”“导出数据”,显示如 2.2-1 所示界面; 点击“下一步”,将目的数据库由“默认”改为“EOS”,如 2.2-2 所示,点击“下一步”; 选择“从源数据库复制表和视图”, 点击“下一步”,显示如 2.2-3 所示界面; 点击“全选”,选中 insurance 数据库中的全部用户表,然后点击“下一步”,完成将 insurance 中的表导入 EOS 数据库中。管理信息系统实验指导 20 / 39 最后点击“完成”。图2.2-1图2.2-2管理信息
23、系统实验指导 21 / 39图2.2-32.2.2. 建立数据库连接1 参照图2.2-4,在屏幕右上方的“引用构件包”、 “数据库连接”与“组织机构与角色”三个选项卡中选择“数据库连接”,即点中“数”。2 点击“数据库连接”连接窗口下的“新建”按钮。3 输入如图2.2-5所示的参数,数据库的用户名与密码请咨询实验教师。4 点击“测试连接”,显示成功后,点击“确定”。5 连接成功后,可如图2.2-6一样点击察看数据库的相关信息。管理信息系统实验指导 22 / 39图2.2-4 数据库连接图2.2-5 数据库连接配置参数1、此处选择数据库连接窗口,点击“新建”。2、输入数据连接的配置信息,测试连接
24、成功后,点击确定。管理信息系统实验指导 23 / 39图2.2-62.2.3. 创建构件包1、 在原有的项目“EOSTriping”上点击右键,选择上下文菜单“新建EOS 构件包”。2、 在弹出的“创建构件包”对话框中,输入如图 2.2-7 所示参数:新建的数据库连接会显示在列表中,双击连接名称,将列出所有的数据库用户双击连接配置对应的用户名,将列出所有数据库表和视图双击某个表或视图,将列出所有字段信息管理信息系统实验指导 24 / 39图2.2-7 创建构件包向导2.2.4. 导入数据实体1、 在“data”构件上点击右键,选择上下文菜单 “新建导入数据实体”,如下图:输入 CUSTMgr不
25、选择后三项点击【完成】按钮管理信息系统实验指导 25 / 392、 在弹出的“导入数据定义”对话框中,选择 2.2.2 节建立的数据库连接,将会列出对应用户下的表和视图,选择刚刚导入的表“in_customer”,点击【完成】按钮。如果刚刚创建的表不在可选列表中,说明 Studio 的数据库配置不正确,可点击“配置”按钮重新配置数据库。如图 2.2-8 所示:管理信息系统实验指导 26 / 39图2.2-8 导入数据实体向导3、 Studio 将自动打开刚刚导入的数据实体文件 in_customer.ent(也可通过双击“EOSTripingdatain_customer”打开),在数据实体编
26、辑器中,点击“field”标签页,然后选择某映射字段编辑相应字段属性,如图 2.2-9 所示:3、点击【完成】按钮点击这里可配置新连接2、选择需要导入到构件包的表1、选择数据库连接管理信息系统实验指导 27 / 39图2.2-9 数据实体编辑器各字段对应WEB 页面参数表如下:字段名称 显示名称 显示格式 默认值 业务字典 js数据类型c_id 客户编号 无 无 无 数字c_name 客户姓名 无 无 无 无c_sex 性别 无 无 BNDICT_gender 无c_tel1 联系电话1 无 无 无 电话号码c_tel2 联系电话2 无 无 无 电话号码c_addr 联系地址 无 无 无 无c
27、_birthday 出生日期 yyyy-MM-dd无 无 日期4、 保存对数据实体修改。名称解释:数据实体:用于描述数据库表结构的文件,其中不仅包括各字段的数据类型、长度、是否组件等信息的,而且包括利用向导生成业务功能时所需要的信息如显示名称、数据类型(主要用于提交表单时候验证数据的有效性)。在EOS中,对数据库的各种操作都是通过这种映射的方式完成的。业务字典:类似于通常的码表,一个代码对应一个描述,并且对这些代码进行了分类。例如:性别类数据字典包括1男性、2女性;学历类业务字典1小学、2初中、3高中、4大专等等。EOS中提供了业务字典的管理,用户可以通过自定义业务代码和业务代码的描述来扩充业
28、务字典信息。选择相应字段,设置字段在 WEB 页面的显示属性管理信息系统实验指导 28 / 392.2.5. 功能生成向导对于案例描述的各个功能,一般的做法需要为每个功能去开发对应的页面(JSP)、业务处理逻辑和展现逻辑,由于本案例属于典型的信息维护功能,EOS针对此类通用的功能处理要求,设计了一套方便快捷功能强大的开发向导,让开发人员不需要编写任何Java代码、展现逻辑、业务运算逻辑和 JSP页面逻辑等,而是根据向导一步步的提示,通过简单的设置就可以一次生成针对数据库中某一张表的查询、增加、修改、删除等功能的所有逻辑或代码文件。那么,对于本案例的功能,将采用功能向导进行生成,以下是具体的操作
29、过程:1、 在刚刚创建的“CUSTMgr”构件包上点击右键,选择上下文中的“新建单表维护向导”。如下图:图2.2.5-12、 在“选择项目中的数据实体”项中选择刚刚导入并修改了 Web 属性的数据实体“in_customer”,点击【下一步】按钮。管理信息系统实验指导 29 / 39图2.2.5-23、 这一步骤主要是生成查询条件输入页面的配置信息。点击“查询条件字段列表”下的【添加】按钮增加查询条件输入域。该对话框主要设置查询条件输入页面的显示方式等信息。如图 2.2.5-3 所示:管理信息系统实验指导 30 / 39图2.2.5-3 “增加条件字段”页面属性对话框首先选择查询条件的字段名称
30、,然后设置对应该条件字段的其他属性。其他参数项说明如下:显示名称:用于查询条件输入元素前面的提示信息。如果在导入数据实体后修改了数据实体的Web属性,显示名称将自动填充,否则请在这里手动填充。只读:是否只是用于页面显示而不能输入。可以为空:是否允许该条件为空。选择“是”,用户不输入内容的情况下,提交页面表单(form )时不将该字段作为查询条件;选择“否”,如果用户不输入任何内容,则会弹出提示窗口要求输入。默认值:页面表单(form )元素默认的输入值。控件类型:用于输入条件表单(form)元素类型,只能是文本框和下拉框中的一种。校验数据类型:用于页面表单(form)提交时js校验数据的有效性,如果校验不通过,不允许提交form。提供的常用校验类型包括:数字、英文字符串、日期时间、邮件地址、身份证、IP地址、电话号码等日期时间格式:当校验类型为“日期”或者“时间”格式时有效,指定输入的日期时间格式。1、点击“添加”,设置条件字段2、选择作为查询条件的字段3、设置条件属性4、点击“确定” ,保存一个条件项字段匹配方式