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:Code snippets"
m (→Database access) |
m (→Database access) |
||
Line 106: | Line 106: | ||
<source lang="java"> | <source lang="java"> | ||
− | function getCustomer | + | function getCustomer(someId String in} returns (Customer) |
ds SQLDataSource?{@resource {}}; // declares a data source that will use binding name "ds" (since a name is not specified) | ds SQLDataSource?{@resource {}}; // declares a data source that will use binding name "ds" (since a name is not specified) | ||
Line 112: | Line 112: | ||
get aCust from ds using(someId); // gets the record in the table that has a key value of someID and populates the customer record | get aCust from ds using(someId); // gets the record in the table that has a key value of someID and populates the customer record | ||
− | get aCust from ds using(someId) with #sql{ // alternative approach (allows for | + | get aCust from ds using(someId) with #sql{ // alternative approach for getting a single record (allows for customizing the SQL) |
SELECT * | SELECT * | ||
FROM CUSTOMER | FROM CUSTOMER | ||
Line 119: | Line 119: | ||
vals Dictionary; // declares a new dictionary | vals Dictionary; // declares a new dictionary | ||
− | get vals from ds using(someId) with #sql{ // alternative approach (does not require a Record definition) | + | get vals from ds using(someId) with #sql{ // alternative approach for getting a single record (does not require a Record definition) |
SELECT * | SELECT * | ||
FROM CUSTOMER | FROM CUSTOMER | ||
Line 127: | Line 127: | ||
return (aCust); | return (aCust); | ||
end | end | ||
+ | </source> | ||
+ | '''Getting multiple records''' | ||
+ | <source lang="java"> | ||
+ | function getCustomer(} returns (Customer[]) | ||
+ | ds SQLDataSource?{@resource {}}; // declares a data source that will use binding name "ds" (since a name is not specified) | ||
+ | |||
+ | custs Customer[]; // declares a new dynamic array of customer records | ||
+ | get custs from ds; // populates the array with a Customer record for each row in the result set | ||
+ | |||
+ | get custs from ds with #sql { | ||
+ | select * from customer where state = 'CO' | ||
+ | }; // populates the array customer records, where the "state" column is equal to "CO" | ||
+ | |||
+ | state String = "CO"; | ||
+ | get custs from ds using(state) with #sql { | ||
+ | select * from customer where state = ? | ||
+ | }; // parameterized version of the previous example | ||
+ | |||
+ | |||
+ | end | ||
</source> | </source> | ||
Revision as of 16:43, 4 February 2012
Please share your code snippets!
General
Variable Declarations
someVal int; // defaults to 0 someVal int?; // defaults to null someVal int? = 15; // initializes value to 15 (future value can be null) someVal int = 23; // initializes value to 23 firstName string; // defaults to "" firstName string?; // defaults to null firstName string = "John"; // initializes value to "John" largeVal bigint; // defaults to 0 amount decimal(5,2); // number with 5 total digits (2 after the decimal point). Defaults to 000.00; coord float; // defaults to 0.0 toggle boolean; // defaults to false dob date; // defaults to today's date ts timestamp?; x any?; // value can be set to any value (primitive, object, etc). See casting examples below.
Constants
const NUMBEROFDAYS int = 7;
Arrays
vals int[]; // new dynamic array of size 0 vals int[]?; // dynamic array, but not instantiated (vals must be instantiated before it can be accessed) vals int[] = new int[4]; // new dynamic array of size 4; all values set to their default value (0 in this example) names string[] = [ "Paul", "John", "George", "Ringo" ]; // dynamic array, initialized with 4 values names[1] = "Bob"; // assigns the first index in the array to "Bob" names[names.getSize()] = "Ken"; // assigns the last index in the array to "Ken" cities string[]; // new dynamic array of size 0 cities.appendElement("Delta"); // appends a new value to the end of the array cities.appendAll([ "Denver", "Pueblo" ]); // appends two new values to the end of the array cities.removeElement(2); // removes the second value in the array cities.removeAll(); // removes all values from the array
Rich UI
Services
Calling a REST service
http HttpRest{request.uri="http:host\\myService"}; srvc IRest?; srvc = ServiceLib.completeBind(srvc, http);
Accessing HTTP request headers
http HttpRest{}; http.request.headers = new Dictionary { param1 = "a value to pass to my service" }; srvc IRest?{@Resource {}}; srvc = ServiceLib.completeBind(srvc, http);
HTTP request and response
function invokeDoSomething() call srvc.doSomething() returning to serviceCallback; end function serviceCallback(returnValueOne String, callbackHttp IHTTP in) // process callback request or response end
Database access
Defining a record
record CUSTOMER type Entity{@table{name = "CUSTOMER"}} NAME string; COUNTRY string{@id}; // primary key field STATE string?; // nullable string field CUSTID string; end
Getting a record
function getCustomer(someId String in} returns (Customer) ds SQLDataSource?{@resource {}}; // declares a data source that will use binding name "ds" (since a name is not specified) aCust Customer; // declares and empty customer record get aCust from ds using(someId); // gets the record in the table that has a key value of someID and populates the customer record get aCust from ds using(someId) with #sql{ // alternative approach for getting a single record (allows for customizing the SQL) SELECT * FROM CUSTOMER WHERE id = ? }; vals Dictionary; // declares a new dictionary get vals from ds using(someId) with #sql{ // alternative approach for getting a single record (does not require a Record definition) SELECT * FROM CUSTOMER WHERE id = ? }; // creates a key/value pair in the dictionary for each column in the result set return (aCust); end
Getting multiple records
function getCustomer(} returns (Customer[]) ds SQLDataSource?{@resource {}}; // declares a data source that will use binding name "ds" (since a name is not specified) custs Customer[]; // declares a new dynamic array of customer records get custs from ds; // populates the array with a Customer record for each row in the result set get custs from ds with #sql { select * from customer where state = 'CO' }; // populates the array customer records, where the "state" column is equal to "CO" state String = "CO"; get custs from ds using(state) with #sql { select * from customer where state = ? }; // parameterized version of the previous example end
Inserting a record
function addCustomer{customer Customer in} ds SQLDataSource?{@resource {}}; add customer to ds; end
Looping through a SQL result set
function loopCust() ds SQLDataSource?{@resource{uri = "binding:myDB" }}; // declares a new data source rs SQLResultSet?; // declares a new result set open rs from ds with #sql{ // opens a result set using the specified SQL query SELECT * FROM CUSTOMER }; myCust Customer; //Loop through results and write out customer name while(rs.getNext()) get myCust from rs; Syslib.writeStdOut ("Customer name: " + myCust.name); end end
Edit this page by logging in to eclipse.org and clicking the Edit tab. Use the Wikitext editor to add a new snippet. Add the title using Heading 4. Use the source lang="java" tag to provide a background for your snippet and some syntax highlighting.