Notice: This Wiki is now read only and edits are no longer 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 1: | Line 1: | ||
= Overview = | = Overview = | ||
− | + | EDT 0.7.0 release provides quick assist support for the following EGL action statements to generate default SQL statements: | |
− | + | #ADD Statement | |
+ | #DELETE Statement | ||
+ | #GET Statement | ||
+ | #OPEN Statement | ||
+ | #REPLACE Statement | ||
+ | |||
+ | Use examples to show how to use the feature in EDT plugin.<br> | ||
= EGL Records Definition = | = EGL Records Definition = | ||
− | <pre> record Product{@Table {name="Product"}} | + | <pre> record Product{@Table {name="Product"}} |
id bigint{@Id}; | id bigint{@Id}; | ||
name string; | name string; | ||
Line 12: | Line 18: | ||
end | end | ||
</pre> | </pre> | ||
− | The above is a basic record definition, one must use annotation '''@Id''' to specific which record field is used as primary key, | + | 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. |
<pre> record OrderItem type '''Entity'''{@table{name = "OrderItem"}} | <pre> record OrderItem type '''Entity'''{@table{name = "OrderItem"}} | ||
ITEM_ID int{@Id}; | ITEM_ID int{@Id}; | ||
Line 34: | Line 40: | ||
== ADD Statement <br> == | == ADD Statement <br> == | ||
− | Click anywhere in the EGL SQL statement and press CTRL+1, and press “Add SQL Statement” proposal, default SQL statement will be added | + | Click anywhere in the EGL SQL statement and press CTRL+1, and press “Add SQL Statement” proposal, default SQL statement will be added to the below statement: <br> (1) add basicRec to ds; //for basic record <br> Change To: <br> add basicRec to ds with <br> #sql{ insert into Product (id, name, price) values (?, ?, ?)}; |
<br> (2) add itemEntity to ds; //for entity record <br>Change To: <br> add itemEntity to ds with <br> #sql{ insert into OrderItem (ITEM_ID, Name, IMAGE, price, description) values (?, ?, ?, ?, ?) }; | <br> (2) add itemEntity to ds; //for entity record <br>Change To: <br> add itemEntity to ds with <br> #sql{ insert into OrderItem (ITEM_ID, Name, IMAGE, price, description) values (?, ?, ?, ?, ?) }; | ||
Line 52: | Line 58: | ||
== OPEN Statement == | == OPEN Statement == | ||
− | ''' '''(7) rows OrderItem; open rs from ds for rows; <br>Change To: <br> open rs from ds using rows.ITEM_ID with<br> #sql{ select ITEM_ID, rtrim(Name), rtrim(IMAGE), price, rtrim(description) from OrderItem where ITEM_ID = ? }; <br> | + | ''' '''(7) rows OrderItem; open rs from ds for rows; <br>Change To: <br> open rs from ds using rows.ITEM_ID with<br> #sql{ select ITEM_ID, rtrim(Name), rtrim(IMAGE), price, rtrim(description) from OrderItem where ITEM_ID = ? }; <br> |
− | == REPLACE(Update) Statement == | + | == REPLACE(Update) Statement == |
''' ''' (8) replace itemEntity to ds ; <br>Change To: <br> replace itemEntity to ds with <br> #sql{ update OrderItem set Name = ?,IMAGE = ?, price = ?,description = ? where ITEM_ID = ? } ; | ''' ''' (8) replace itemEntity to ds ; <br>Change To: <br> replace itemEntity to ds with <br> #sql{ update OrderItem set Name = ?,IMAGE = ?, price = ?,description = ? where ITEM_ID = ? } ; | ||
Line 60: | Line 66: | ||
= Current Limitation = | = Current Limitation = | ||
− | Note the feature can only generate default SQL statements for basic record or entity record that does not contain any entity relationship field. | + | Note the feature can only generate default SQL statements for basic record or entity record that does not contain any entity relationship field. <br> |
− | + | ||
− | <br> | + | |
<br> | <br> |
Revision as of 22:12, 28 December 2011
Contents
Overview
EDT 0.7.0 release provides quick assist support for the following EGL action statements to generate default SQL statements:
- ADD Statement
- DELETE Statement
- GET Statement
- OPEN Statement
- REPLACE Statement
Use examples to show how to use the feature in EDT plugin.
EGL Records 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 Variables Declaration
basicRec Product; itemEntity OrderItem; rs SQLResultSet?; ds SQLDataSource? = new SQLDataSource("jdbc:derby:C:/databases/EGLDerbyR7;create=true");
Default SQL Generation
ADD Statement
Click anywhere in the EGL SQL statement and press CTRL+1, and press “Add SQL Statement” proposal, default SQL statement will be added to the below 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(Update) Statement
(8) replace itemEntity to ds ;
Change To:
replace itemEntity to ds with
#sql{ update OrderItem set Name = ?,IMAGE = ?, price = ?,description = ? where ITEM_ID = ? } ;
Current Limitation
Note the feature can only generate default SQL statements for basic record or entity record that does not contain any entity relationship field.