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.
Scout/Concepts/Sql Service
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
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/.