Aurora数据获取和存储--datasets篇

datasets介绍

无论是用户向服务器提交数据还是服务器向用户返回数据,都是在传输一定含义的数据集。这些数据集在Aurora框架中被抽象成Datasets,datasets中可以有多个dataset,dataset提供了对数据的赋值(datas)、导航(fields)和触发事件(event)。

datasets定义

  <a:dataSets>
            
            <a:dataSet id="PIM1010_gender" lookupCode="STUDENT_SEX"/>
            <a:dataSet id="PIM1010_department" lookupCode="PIM_DEPARTMENT"/>
            <a:dataSet id="PIM1010_base" lookupCode="PIM_BASE"/>
            <a:dataSet id="PIM1010_status" lookupCode="CHECK_IN_STATUS"/>
            
            <a:dataSet id="PIM1010_people_inf_query">
                <a:fields>
                    <a:field name="gender" displayField="code_value_name" options="PIM1010_gender"/>
                    <a:field name="department" displayField="code_value_name" options="PIM1010_department"/>
                    <a:field name="base" displayField="code_value_name" options="PIM1010_base"/>
                    <a:field name="status" displayField="code_value_name" options="PIM1010_status"/>
                    <a:field name="people_no" lovGridHeight="300" lovService="FSD.PIM1010.fsd_people_information_lov" lovWidth="600" title="入住人员信息查询">
                        <a:mapping>
                            <a:map from="people_no" to="people_no"/>
                            <a:map from="people_name" to="people_name"/>
                            <a:map from="telephone" to="telephone"/>
                            <a:map from="gender" to="gender"/>
                        a:mapping>
                    a:field>
                a:fields>
            a:dataSet>
             
            <a:dataSet id="PIM1010_people_inf_result" autoCount="true" autoQuery="true" fetchAll="false" model="FSD.fsd_people_information_manager" pageSize="15" queryDataSet="PIM1010_people_inf_query" selectable="true">
                <a:fields>
                    <a:field name="people_id" readOnly="true"/>
                    <a:field name="people_number" readOnly="true"/>
                    <a:field name="people_no" required="true"/>
                    <a:field name="people_name" required="true"/>
                    <a:field name="gender" displayField="code_value_name" options="PIM1010_gender" required="true" returnField="gender_code" valueField="code_value"/>
                    <a:field name="department" displayField="code_value_name" options="PIM1010_department"  required="true" returnField="department_code" valueField="code_value"/>
                    <a:field name="base" displayField="code_value_name" options="PIM1010_base"  required="true" returnField="base_code" valueField="code_value"/>
                    <a:field name="telephone"/>
                    <a:field name="email"/>
                    <a:field name="people_comment"/>
                    <a:field name="creation_date" readOnly="true"/>
                    <a:field name="status" displayField="code_value_name" options="PIM1010_status"  readOnly="true" returnField="status_code" valueField="code_value"/>
                a:fields>
            a:dataSet>
        a:dataSets>

解析

  • 向服务器发送请求后,返回的页面中DataSet的创建脚本形式如下:
new  Aurora.DataSet(
{“datas”:[{“user_id”:”1”,”user_name”:”HECADMIN”, “encrypted_foundation_password”:”……”}, //**一条record**
{“user_id”:”2”,”user_name”:”ADMIN”, “encrypted_foundation_password”:”……”},
……
],
 “listeners”:{“update”,onUpdate, //注册的事件
           “submitsuccess”: onModifyUserSuccess,
            ……
},
 “fields”:[{“name”:”user_id”, "databasetype":"BIGINT","datatype":"java.lang.Long","isprimarykey":true}, //field
        {"name":"user_name","databasetype":"VARCHAR","datatype":"java.lang.String",
"prompt":"SYS_USER.ACCOUNT","readonly":true},
        {"name":"encrypted_foundation_password","databasetype":"VARCHAR","datatype":"java.lang.String",
"insertexpression":"sys_login_pkg.md5(${@user_password})"},
        ……],
 “id”:”sys_user_edit_ds”,
 “pagesize”:10,
 ……
}
);

1) datas中是DataSet初始化时的数据中的数据,是由多条数据记录(record)组成。
2) listeners中记录了当前dataSet中注册的事件。发生特定动作时会响应特定的事件。
3) fields中记录的是字段级的元数据信息,每个字段的名称,数据类型,提示(prompt)等属性。Field中的信息集中了DataSet定义以及bm中的field、ref-field中的信息的总和。
4) DataSet其他的信息,如id,pageSize,querurl等等。

  • dataset中数据的来源有四种,在这里我们只介绍一种,其他的只做了解,等一下我放在最后面。

dataset的属性

id 指定dataSet的id(同一个页面中唯一)

model 指定dataSet对应的bm

autoCreate 指定创建dataSet时是否创建一条空记录(默认为false false:不创建 true:创建)

autoQuery 页面加载完成后,是否自动进行一次ajax请求查询数据(默认为false false:不查询 true:自动查询)

fetchAll 指定是否一次查询所有的数据(默认为false false:不全加载 true:一次加载)

pageSize 指定一次查询出数据的条数(默认10条)

queryDataSet 重要属性,指示查询时,用户可输入的查询条件来源。

autoCount 查询是否进行统计(默认为true false:不进行统计 true:统计查询的总条数、页数信息)

canQuery 是否可查询(默认true false:不可查询 true:可查询)

canSubmit 是否可提交(默认true false:不可提交 true:可提交)

loadData 是否服务器端加载数据(默认false false:不在服务器端加载 true:在服务器端加载)

selectable 是否可选择(默认false false:不可选择 true:可选择)

selectionModel 选择模式(默认multiple multiple:多选 single:单选)

queryUrl 查询的url地址

submitUrl 提交的url地址

bindTarget 绑定到目标dataSet,作为目标dataSet的是一个子DataSet

bindName 绑定后的名称

lookupCode 值列表的code

  • model的url默认对于bm,但如果需要修改默认的url(因为查询集的dataset不写model,就默认与结果集的model相同)或需要设置参数可以用 queryUrl(),结果集想传参数可以用submitUrl();
    • ${/request/@context_path}/autocrud/test.test/query?contractno=${/parameter/@contractno}
    • ${/request/@context_path},取当前web应用的根路径;
    • autocrud,框架内置,调用框架处理增删改查的机制;
    • test.test:前面的test指示bm的文件目录,从web-inf/classes/开始计算,本例中即为web-inf/classes/test/test.bm;
    • query:指示该url对应的行为,目前总共有5个可用,query对应查询,insert对应新增,update对应更新,sbatch_update对循环应增删改,delete对应删除,execute可执行一个pl sql块。

** - 发现在很多查询集中不但queryfrom需要绑定查询集,同时输入框标签也需要绑定?
- dataset内的field都是对输入框的数据进行控制的,并没有其它什么意义**

你可能感兴趣的:(Aurora架构)