缺省SQL Generation的快速帮助

来源:互联网 发布:js特效代码酷炫 编辑:程序博客网 时间:2024/05/16 06:14

缺省SQLGeneration的快速帮助

EDT 0.7.0版本为基于EGL的行为语句产生缺省的SQL语句提供了快速帮助:

  • ADD语句

  • DELETE语句

  • GET语句

  • OPEN语句

  • REPLACE语句

下面用样例来说明如何在EDT中使用这种功能:


EGL记录定义

recordProduct{@Table {name="Product"}}    id bigint{@Id};name string;price float;end


上面定义了一个基本记录类型,必须使用注释@Id来指定记录的那个字段映射为表的主键,使用注释@Table来说明这个记录映射为那个表,就像上面的定义那样,不过@Table的使用是可选的。

record OrderItem type Entity{@table{name = "OrderItem"}}        ITEM_ID int{@Id};        NAME string{ @Column { insertable=true } };        IMAGE string?{ @Column { updateable=true } };        PRICE decimal(7, 2)?;        DESCRIPTION string?;end

上面是对应一个表的 entity 记录定义。


EGL变量定义

   basicRec Product;   itemEntity OrderItem;   rs SQLResultSet?;    ds SQLDataSource? = new      SQLDataSource("jdbc:derby:C:/databases/EGLDerbyR7;create=true");  

ADD语句

    在EGL语句的任何地方点击并按Ctrl+1,选择“AddSQL Statement建议,缺省的SQL语句将添加到已有的EGL语句中:


add basicRec to ds; //for basic record
变成:

add basicRec to ds with#sql{insert into Product(id, name, price)values(?, ?, ?)};

add itemEntity to ds; //for entity record
变成:

add itemEntity to ds with#sql{insert into OrderItem(ITEM_ID, Name, IMAGE, price, description)values(?, ?, ?, ?, ?)};


DELETE语句

delete basicRec from ds; // for basic record
变成:
delete basicRec from ds with#sql{delete from Productwhere    id = ?};

delete itemEntity from ds; //for entity record
变成:
delete itemEntity from ds with#sql{delete from OrderItemwhereITEM_ID = ?};

GET语句

GET basicRec from ds; //for basic record
变成:
 GET basicRec from ds using basicRec.id with#sql{selectid, rtrim(name), pricefrom  Productwhereid = ?};

GET itemEntity from ds; //for entity record
变成:
GET itemEntity from ds using itemEntity.ITEM_ID  with#sql{   selectITEM_ID, rtrim(Name), rtrim(IMAGE), price, rtrim(description)   from OrderItem   whereITEM_ID = ?};


OPEN语句

rows OrderItem; open rs from ds for rows; 
变成:
open rs from ds using rows.ITEM_ID  with#sql{selectITEM_ID, rtrim(Name), rtrim(IMAGE), price, rtrim(description)from OrderItemwhereITEM_ID =  ?};

REPLACE语句

replace itemEntity to ds ;
变成:
replace itemEntity to ds with#sql{update OrderItemsetName = ?,IMAGE = ?,price = ?,description = ?whereITEM_ID = ?} ;