(1) 创建SQL文件:
右键选中项目EOSTripping,在弹出的菜单中选择“创建文件夹”,输入文件夹名“dbscripts”。在资源管理器中选中新建的dbscripts文件夹,右键点击,同样在弹出的菜单中选择创建文件夹“oracle”。接着选中oracle文件夹,右键点击,在弹出的菜单中选择创建文件,输入文件名“db.sql”,点击完成后,如图4-5所示。
(2) 编辑SQL文件:
在项目EOSTripping中dbscripts/oracle目录下面的db.sql中输入下面的内容:
(3) 连接数据库:
点击EOS Studio工具栏上的“”按钮,保存db.sql,在sql的编辑视图中,点击右键,在显示的菜单中选择“使用数据库连接”,弹出如图4-6所示的对话框,选择 “使用现有连接”,在现有连接中选择一个。本案例只配置了一个数据库连接,所以列表中只列出了一个数据库连接名称。图4-6中【重新连接】按钮变灰,表示数据库已经连接,这时直接点击【完成】即可。如果数据库未连接,需要点击【重新连接】按钮,弹出如图4-7所示的对话框。
输入密码后,点击【确定】。如果密码输入错误,会弹出如图4-8所示的提示框提示登录被拒绝,点击确定后,需要重新连接数据库。
密码输入正确后,【重新连接】按钮变灰,如图4-6所示,点击【完成】即可。
4) 运行SQL:
再在sql的编辑视图中,点击右键,在显示的菜单中选择“运行SQL”,EOS6会执行数据库脚本,创建好数据库表。如图4-9所示。
通过“数据输出”视图检查SQL脚本是否运行成功。对失败的操作,右边的消息栏会显示出错误原因。
(5) 导入数据实体:
虽然用SQL脚本重新创建了员工EMP表,但表结构没有改变,不用再重新导入,只需要导入机构表ORG就可以了。展开com.primeton.empmgr构件包中的“数据数据模型com.primeton.empmgr”,双击emp.datasetx,在编辑视图中可以看到已经导入的Emp数据实体。在左边的资源管理中,鼠标右键选中emp.datasetx,在弹出的菜单中选择“创建导入数据实体”,按照第3章介绍的方法导入ORG表,如图4-10所示。
导入成功后,在emp.datasetx的编辑视图中就会生成数据实体Org。右键点击空白处,在弹出的菜单中选择“重新加载”,如图4-11所示。
点击“重新加载”后弹出如图4-12所示的对话框。
点击【确定】后,会自动生成Emp实体和Org实体之间的关联关系。如图4-13所示。从业务角度理解,一个机构下面会有多个员工,一个员工属于一个机构,而且在设计表结构时,在员工表里有一个机构表的ID作为外键,这样的话,员工表和机构表之间就是N对1的关联关系。
双击图4-13中单向n:1的关联关系连线,弹出如图4-14所示的对话框,可以清楚看到Emp和Org之间的关系。
(6) 转换数据实体关联关系:
本案例希望通过机构来找到员工,这就需要将Emp和Org的N对1关系改成Org 和Emp的1对N关系。也就是将Org作为主控方,来维护Emp的信息。
在图4-13中右键选中n:1关联关系连线,弹出菜单,选择“转换关联关系转换为单向1:N”,如图4-15所示。也可以先右键选中n:1关联关系连线,点击图4-15中菜单的删除操作,然后从选用板中选择“单向1:n关联”,因为Org是1端,所以要从Org实体连接到Emp实体。
转换后Emp和Org的关系如图4-16所示,Emp对象中不再有org属性,而在Org对象中会增加一个类型是Emp对象的数组属性emps。双击单向1:n的关联关系连线,同样会弹出如图4-14所示的对话框,设置“是否加载关联实体”为“false”。
(7) 编辑新导入实体Org的属性:
双击Org实体,弹出对话框用来编辑实体属性,在属性列表中直接修改属性的显示名称,如图4-17所示。点击【确定】完成属性设置。
点击EOS Studio工具栏上的“”按钮,保存刚才的修改。
(8) 创建查询实体:
Org 和Emp的关联关系转变成1对N关系后,查询员工的信息就不能直接得到员工对应的机构名称和机构领导,这就要借助查询实体来完成。
在emp.datasetx的编辑视图中,从选用板上拖拽“查询实体”至空白区,默认产生一个名称为Entity的查询实体。双击该查询实体,弹出“编辑查询实体属性”的对话框,如图4-18所示。
默认选中default数据库,双击该行,弹出如图4-19所示的对话框,输入sql语句:select e.*,o.orgname,o.orgleader from emp e,org o where e.orgid=o.orgid
点击【确定】后,该SQL语句就会显示在图4-20中第一行的最后一列中,输入实体名称“EmpQueryEntity”,选择数据源,点击图中的【映射属性】按钮后就可以根据刚才写的SQL语句,将需要查询出来的属性显示在反射属性列表中。同编辑Emp和Org实体属性一样,可以在列表上直接修改显示名称,也可以选中一个属性,点击右上角的【高级属性配置】按钮,设置属性的显示方式。
点击【确定】,完成对查询实体的设置,最后保存emp.datasetx。