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 "Scout/Concepts/Sql Service"
(→SQL convenience class) |
(→Select into an array holder) |
||
Line 73: | Line 73: | ||
{{Note|TODO|Using 2 services, more information in [http://www.eclipse.org/forums/index.php/mv/msg/369585/902322/#msg_902322 forum thread]}} | {{Note|TODO|Using 2 services, more information in [http://www.eclipse.org/forums/index.php/mv/msg/369585/902322/#msg_902322 forum thread]}} | ||
− | == Select into an array holder == | + | == Advanced binding == |
+ | |||
+ | === Solve conflicts between bindings === | ||
+ | {{Note|TODO|Add explanations from this [https://www.eclipse.org/forums/index.php/t/803695/ forum thread] (extended to a more common case: for example read from 2 formDatas)}} | ||
+ | |||
+ | |||
+ | === Select into an array holder === | ||
Example: | Example: | ||
<source lang="java"> | <source lang="java"> |
Revision as of 11:36, 28 August 2014
The Scout documentation has been moved to https://eclipsescout.github.io/.
The SqlService provides access to a database.
- implements The Scout documentation has been moved to https://eclipsescout.github.io/.
- extends The Scout documentation has been moved to https://eclipsescout.github.io/.
Contents
Description
Minimal configuration
To be able to connect to a database, these properties needs to be configured:
- The Scout documentation has been moved to https://eclipsescout.github.io/. the qualified name of the JDBC driver.
- The Scout documentation has been moved to https://eclipsescout.github.io/. the JDBC path
"jdbc:..."
. - The Scout documentation has been moved to https://eclipsescout.github.io/. the user name to connect to the database.
- The Scout documentation has been moved to https://eclipsescout.github.io/. the password to connect to the database.
- The Scout documentation has been moved to https://eclipsescout.github.io/. provides the class of the The Scout documentation has been moved to https://eclipsescout.github.io/. that should be used.
Delegation of the configuration to config.ini
If the Property The Scout documentation has been moved to https://eclipsescout.github.io/. is set (using the The Scout documentation has been moved to https://eclipsescout.github.io/.), the Java code looks like this:
package myapp.server.services.common.sql; import org.eclipse.scout.rt.services.common.jdbc.AbstractSqlService; import org.eclipse.scout.service.IService; public class MySqlService extends AbstractSqlService implements IService { @Override protected String getConfiguredJdbcMappingName() { return "jdbc:derby:C:/MyDB"; } // + other configurations... }
The path to the database is hard coded in the code. You might want to delegate this configuration to the config.ini
to have more flexibility (e.g one path for development and one path for production). Because the The Scout documentation has been moved to https://eclipsescout.github.io/. also provides a setter for this property setJdbcMappingName(String)
, it is possible to set the property with the config.ini
file:
<qualified name of the class>#<setter name without set prefix>=<value>
This pattern works in Eclipse Scout for all classes extending the The Scout documentation has been moved to https://eclipsescout.github.io/.
For this example:
myapp.server.services.common.sql.MySqlService#JdbcMappingName=jdbc:derby:C:/MyDB
SQL convenience class
Scout proposes a convenience singleton class to access the default SqlService: The Scout documentation has been moved to https://eclipsescout.github.io/.
Here a simple select statement:
Object[][] s = SQL.select("" + "SELECT COMPANY_NR," + " SHORT_NAME," + " NAME" + " FROM COMPANY");
This update example uses binds. The data are read from the formData variable. ":firstName"
will access the value in formData.getFirstName()
or formData.getFirstName().getValue()
SQL.update( " update actor " + " set first_name = :firstName," + " last_name = :lastName " + " where actor_id = :id ", formData );
Multiple SQL Services
Advanced binding
Solve conflicts between bindings
Select into an array holder
Example:
BeanArrayHolder<AnswerBean> holder = new BeanArrayHolder<AnswerBean>(AnswerBean.class); SQL.selectInto(" select question_id, name, answer_id " + " from answers " + " into :{list.questionNr}, :{list.yourName}, :{list.answerNr}", new NVPair("list", holder));
See also
- The Scout documentation has been moved to https://eclipsescout.github.io/.
- The Scout documentation has been moved to https://eclipsescout.github.io/.
- The Scout documentation has been moved to https://eclipsescout.github.io/.