Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "EDT:Default SQL Generation"
Line 14: | Line 14: | ||
'' record Product{@Table {name="Product"}}'' | '' record Product{@Table {name="Product"}}'' | ||
'' id bigint{@Id};'' | '' id bigint{@Id};'' | ||
− | + | name string; | |
− | + | price float; | |
end | end | ||
Line 46: | Line 46: | ||
'''Click anywhere in the EGL statement and press CTRL+1, and press “Add SQL Statement” proposal, ''' | '''Click anywhere in the EGL statement and press CTRL+1, and press “Add SQL Statement” proposal, ''' | ||
default SQL statement will be added to the above statement: | default SQL statement will be added to the above statement: | ||
− | + | (1) add basicRec to ds; //for basic record | |
Change To: | Change To: | ||
− | + | add basicRec to ds with | |
− | + | #sql{ insert into Product (id, name, price) values (?, ?, ?)}; | |
− | + | (2) add itemEntity to ds; //for entity record | |
Change To: | Change To: | ||
− | + | add itemEntity to ds with | |
#sql{ | #sql{ | ||
insert into OrderItem | insert into OrderItem | ||
Line 64: | Line 64: | ||
'''DELETE Statement''' | '''DELETE Statement''' | ||
− | + | (3) delete basicRec from ds; // for basic record | |
Change To: | Change To: | ||
− | + | delete basicRec from ds with | |
#sql{ | #sql{ | ||
delete from Product | delete from Product | ||
where id = ? | where id = ? | ||
}; | }; | ||
− | + | ||
− | + | (4) delete itemEntity from ds; //for entity record | |
Change To: | Change To: | ||
− | + | delete itemEntity from ds with | |
#sql{ | #sql{ | ||
delete from OrderItem | delete from OrderItem | ||
− | where ITEM_ID = ? | + | where ITEM_ID = ? |
}; | }; | ||
'''GET Statement''' | '''GET Statement''' | ||
− | + | (5) GET basicRec from ds; //for basic record | |
+ | |||
+ | Change To: | ||
+ | GET basicRec from ds using basicRec.id with | ||
+ | #sql{ | ||
+ | select id, rtrim(name), price | ||
+ | from Product | ||
+ | where id = ? | ||
+ | }; | ||
+ | |||
+ | |||
+ | (6) GET itemEntity from ds; //for entity record | ||
+ | |||
+ | Change To: | ||
+ | GET itemEntity from ds using itemEntity.ITEM_ID with | ||
+ | #sql{ | ||
+ | select ITEM_ID, rtrim(Name), rtrim(IMAGE), price, rtrim(description) | ||
+ | from OrderItem | ||
+ | where ITEM_ID = ? | ||
+ | }; | ||
+ | |||
+ | |||
+ | '''OPEN Statement ''' | ||
+ | (7) rows OrderItem; open rs from ds for rows; | ||
+ | |||
+ | Change To: | ||
+ | open rs from ds using rows.ITEM_ID with | ||
+ | #sql{ | ||
+ | select ITEM_ID, rtrim(Name), rtrim(IMAGE), price, rtrim(description) | ||
+ | from OrderItem | ||
+ | where ITEM_ID = ? | ||
+ | }; | ||
+ | |||
+ | '''REPLACE Statement''' | ||
+ | (8) replace itemEntity to ds ; | ||
+ | |||
+ | Change To: | ||
+ | replace itemEntity to ds with | ||
+ | #sql{ | ||
+ | update OrderItem | ||
+ | set Name = ?,IMAGE = ?, | ||
+ | price = ?,description = ? | ||
+ | where ITEM_ID = ? | ||
+ | } ; | ||
+ | |||
+ | |||
+ | Now the feature can only generate default SQL statements for entity record that does not contain any entity relationship field. | ||
− | |||
− | |||
− | |||
<br> | <br> | ||
<br> | <br> |
Revision as of 03:51, 22 December 2011
Quick Assist Support for Default SQL Generation
EDT 0.7.0 release provides quick assist support for the following EGL action statements to generate default SQL statements: 1 ADD Statement 2 DELETE Statement 3 GET Statement 4 OPEN Statement 5 REPLACE Statement Use examples to show how to use the feature in EDT plugin. EGL Record Definition: record Product{@Table {name="Product"}} id bigint{@Id}; name string; price float; end The above is a basic record definition, one must use annotation @Id to specific which record field is used as primary key, also can use annotation @Table to specify to which table the record is mapped, just as 'Product' definition shows, but this is optional. 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 The above is an entity record definition that is generated from a table schema. EGL Variable Definition basicRec Product; itemEntity OrderItem; rs SQLResultSet?; ds SQLDataSource? = new SQLDataSource("jdbc:derby:C:/databases/EGLDerbyR7;create=true"); ADD Statement Click anywhere in the EGL statement and press CTRL+1, and press “Add SQL Statement” proposal, default SQL statement will be added to the above statement: (1) add basicRec to ds; //for basic record Change To: add basicRec to ds with #sql{ insert into Product (id, name, price) values (?, ?, ?)}; (2) add itemEntity to ds; //for entity record Change To: add itemEntity to ds with #sql{ insert into OrderItem (ITEM_ID, Name, IMAGE, price, description) values (?, ?, ?, ?, ?) }; DELETE Statement (3) delete basicRec from ds; // for basic record Change To: delete basicRec from ds with #sql{ delete from Product where id = ? }; (4) delete itemEntity from ds; //for entity record Change To: delete itemEntity from ds with #sql{ delete from OrderItem where ITEM_ID = ? }; GET Statement (5) GET basicRec from ds; //for basic record Change To: GET basicRec from ds using basicRec.id with #sql{ select id, rtrim(name), price from Product where id = ? }; (6) GET itemEntity from ds; //for entity record Change To: GET itemEntity from ds using itemEntity.ITEM_ID with #sql{ select ITEM_ID, rtrim(Name), rtrim(IMAGE), price, rtrim(description) from OrderItem where ITEM_ID = ? }; OPEN Statement (7) rows OrderItem; open rs from ds for rows; Change To: open rs from ds using rows.ITEM_ID with #sql{ select ITEM_ID, rtrim(Name), rtrim(IMAGE), price, rtrim(description) from OrderItem where ITEM_ID = ? }; REPLACE Statement (8) replace itemEntity to ds ; Change To: replace itemEntity to ds with #sql{ update OrderItem set Name = ?,IMAGE = ?, price = ?,description = ? where ITEM_ID = ? } ; Now the feature can only generate default SQL statements for entity record that does not contain any entity relationship field.