Skip to main content

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.

Jump to: navigation, search

Difference between revisions of "EDT:Default SQL Generation"

Line 20: Line 20:
 
               DESCRIPTION string?;  
 
               DESCRIPTION string?;  
 
         end  
 
         end  
</pre>
+
</pre>  
 
&nbsp; &nbsp; &nbsp; &nbsp;The above is an entity record definition that is generated from a table schema.<br>  
 
&nbsp; &nbsp; &nbsp; &nbsp;The above is an entity record definition that is generated from a table schema.<br>  
  
Line 31: Line 31:
 
</pre>  
 
</pre>  
 
= Default SQL For ADD Statement&nbsp;<br>  =
 
= Default SQL For ADD Statement&nbsp;<br>  =
<pre>'''&nbsp; &nbsp;&nbsp;'''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:  
+
&nbsp; &nbsp;Click anywhere in the EGL SQL statement and press CTRL+1, and press “Add SQL Statement” proposal, default SQL statement will be added<br>to the below statement: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (1) add basicRec to ds; //for basic record <br> Change To: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;add basicRec to ds with &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#sql{ insert into Product (id, name, price) values (?,&nbsp;?,&nbsp;?)};  
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (1) add basicRec to ds; //for basic record  
+
 
Change To:  
+
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; add basicRec to ds with  
+
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#sql{ insert into Product (id, name, price) values (?,&nbsp;?,&nbsp;?)};  
+
</pre>
+
 
<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (2) add itemEntity to ds; //for entity record <br>Change To: <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;add itemEntity to ds with <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#sql{ insert into OrderItem (ITEM_ID, Name, IMAGE, price, description) values (?,&nbsp;?,&nbsp;?,&nbsp;?,&nbsp;?) };&nbsp;  
 
<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (2) add itemEntity to ds; //for entity record <br>Change To: <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;add itemEntity to ds with <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#sql{ insert into OrderItem (ITEM_ID, Name, IMAGE, price, description) values (?,&nbsp;?,&nbsp;?,&nbsp;?,&nbsp;?) };&nbsp;  
  

Revision as of 22:04, 28 December 2011

Overview

    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 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 For 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 (?, ?, ?, ?, ?) }; 

Default SQL For 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 = ? };

Default SQL For 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 = ? };

Default SQL For 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 =  ? }; Default SQL For 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. 



Back to the top