概述
Rapido各模塊之間關(guān)系,前面的內(nèi)容也做了簡單描述,我們要開發(fā)一個業(yè)務(wù)頁面,在Rapido當(dāng)中首先要做的就是先定義若干個實體。定義實體之前,我們需要先定義好實體存放的包名,如下圖所示:

操作
定義好包之前,在需要放置實體的包下雙擊包名即可在右邊工作區(qū)中看到實體定義界面,如下圖所示:

要添加實體,可以在左邊右鍵,在彈出菜單中選擇添加頂級實體,如下圖所示:

需要注意的是,實體支持樹形結(jié)構(gòu),利用這種樹形結(jié)構(gòu)就可以實現(xiàn)我們應(yīng)用當(dāng)中的主從表、遞歸樹之類層次形業(yè)務(wù)數(shù)據(jù)展示需求。添加完實體后,就可以定義該實體對應(yīng)的數(shù)據(jù)庫表及查詢數(shù)據(jù)采用的SQL等信息。
點擊“主體表名”字段中的按鈕,就可以彈出查詢SQL拼裝向?qū)В迷撓驅(qū)?,我們就可以定義一些比較規(guī)則的查詢SQL,如下圖所示:

在實體SQL定義時,除了可以通過上述向?qū)Х绞綄崿F(xiàn),如果您對SQL比較熟悉,那么可以直接在查詢SQL字段中直接定義要查詢的SQL,在SQL定義過程當(dāng)中,我們還可以通過邊上的

圖標(biāo),打開一個專業(yè)的SQL編輯器輸入SQL,在SQL定義中,還可以使用velocity語法定義動態(tài)SQL,如下圖所示:

具體操作,這里就不再贅述。
擴展
在實體定義過程當(dāng)中,可以看到,實體對應(yīng)的表字段主鍵系統(tǒng)可以幫助我們自動計算出來,有了主鍵,就可以實現(xiàn)表數(shù)據(jù)的更新操作,但如果要向表中插入新的數(shù)據(jù),就需要指定主鍵生成機制。
通過情況下,主鍵有用戶自定義與自增長兩種類型。用戶自定義的主鍵又可以分為頁面中用戶手工輸入主鍵;后臺業(yè)務(wù)代碼生成主鍵;數(shù)據(jù)庫表自增長類型的主鍵。在Rapido當(dāng)中,默認(rèn)提供了自增長與自定義兩種主鍵生成方式,對于自增長類型主鍵,在插入數(shù)據(jù)時會采用數(shù)據(jù)庫自增長機制填充主鍵;對于自定義主鍵生成方式,Rapido默認(rèn)提供了基于UUID的主鍵生成機制。在實際應(yīng)用開發(fā)當(dāng)中,我們可能需要其它類型的自定義主鍵生成方式,比如Oracle數(shù)據(jù)庫中的sequence機制等,在這種情況下我們就可以通過實現(xiàn)IGenerator接口,來定義屬于我們自己的主鍵生成方式,IGenerator接口內(nèi)容如下:
package com.bstek.bdf2.rapido.key;
import java.util.Map;
/**
* 定義主鍵生成器
* @author jacky.gao@bstek.com
* @since 2012-7-16
*/
public interface IGenerator<T> {
/**
* 用于顯示的描述
* @return 返回描述信息
*/
String desc();
/**
* 產(chǎn)生一個唯一的用于填充主鍵的ID值,唯一的參數(shù)是一個Map,其中一定包含的參數(shù)有如下三個:<br>
* 1.entityTableName:當(dāng)前操作的表名,<br>
* 2.entityFields:當(dāng)前表對應(yīng)實體定義時包含的字段,<br>
* 3.entityTablePrimaryKeys:當(dāng)前表在定義實體時設(shè)置的主鍵名,多個主鍵字段名之間采用逗號分隔(,),<br>
* 以上三個在Map中包含的參數(shù),可以在生成唯一ID時可以選擇性的使用,<br>
* 除以上三個參數(shù)包,其中還包含所有在客戶端動態(tài)添加進(jìn)來的參數(shù)
* @param map 數(shù)據(jù)提交中所帶的各種參數(shù)
* @return 返回的的UUID值
*/
T execute(Map<String,Object> map);
}
接口實現(xiàn)類編寫完成之后,我們需要將其配置到Spring上下文環(huán)境當(dāng)中,這樣在實體頁面配置實體時,在自定義方式主鍵生成機制下,就可以看到
這個實現(xiàn)類信息。
更多建議: