Can you give an example of the type of multi-part query you have in mind and how the code would be used.
Ari On 31/01/2015 11:38pm, Andrus Adamchik wrote: > "execute" will only be used when a query is known or expected to be > "multi-part" (my own term), i.e. returns more than one ResultSet, performs > more than one update (or a combination of selects or updates). There are more > meaningful shortcuts for single-result queries. If you expect a single > ResultSet, you use SQLSelect.select(..), for a single insert/update, you use > SQLExec.update(..). This roughly mirrors the types of results a JDBC > Statement can return: > > ResultSet executeQuery(..) > int executeUpdate(..) > int[] executeBatch(..) > boolean execute(..) // this one is multi-part > > Andrus > > >> On Jan 27, 2015, at 8:13 PM, Aristedes Maniatis <[email protected]> wrote: >> >> On 27/01/2015 10:45pm, Andrus Adamchik wrote: >>> List<Object> is a confusing data structure. When iterating through it you >>> will need to do instanceof/cast on every entry, and more importantly, you >>> will need to know upfront what are the valid entries in there. >>> >>> With List<QueryResult> you don't do instanceof/cast, and also if say >>> tomorrow we add/change something in the entry format/type, we simply alter >>> QueryResult API, making the change visible to the user. >> >> OK, so let's examine your example: >> >> List<QueryResult> result = SQLExec >> .query("INSERT INTO ARTIST (ARTIST_ID, ARTIST_NAME) VALUES (#bind($id), >> #bind($name))") >> .paramsArray(55, "a3") >> .execute(context); >> >> Let's say I want to get the number of rows added. I do this: >> >> count = result.get(0).getBatchUpdateResult()[0]; or >> count = result.get(0).getUpdateResult(); >> >> except that I didn't run an "UPDATE", I ran an "INSERT". But perhaps that >> can be solved with enough javadocs to explain the naming... >> >> >> Now, for a result set: >> >> List<QueryResult> result = SQLExec.query("CALL >> getContacts_proc()").execute(context); >> >> List<Contact> contact = (List<Contact>) result.get(0).getSelectResult(); >> >> >> >> Am I missing the point here? >> >> >> Ari >> >> >> >> -- >> --------------------------> >> Aristedes Maniatis >> GPG fingerprint CBFB 84B4 738D 4E87 5E5C 5EFA EF6A 7D2E 3E49 102A >> > -- --------------------------> Aristedes Maniatis GPG fingerprint CBFB 84B4 738D 4E87 5E5C 5EFA EF6A 7D2E 3E49 102A
