diff options
author | Markus Koivisto <markus@vaadin.com> | 2016-01-22 14:55:18 +0200 |
---|---|---|
committer | Markus Koivisto <markus@vaadin.com> | 2016-01-22 14:55:18 +0200 |
commit | 99d6de546c74f0eed230ea8253dda6b85109d2e7 (patch) | |
tree | 10fc21c557566fe3241e6e13499df18d80f8dcb2 /documentation/sqlcontainer/sqlcontainer-architecture.asciidoc | |
parent | 610736d9f373d4b37fd39ff8f90aabd13eab7926 (diff) | |
download | vaadin-framework-99d6de546c74f0eed230ea8253dda6b85109d2e7.tar.gz vaadin-framework-99d6de546c74f0eed230ea8253dda6b85109d2e7.zip |
Add documentation to master branch
Change-Id: I2504bb10f1ae73ec0cbc08b7ba5a88925caa1674
Diffstat (limited to 'documentation/sqlcontainer/sqlcontainer-architecture.asciidoc')
-rw-r--r-- | documentation/sqlcontainer/sqlcontainer-architecture.asciidoc | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/documentation/sqlcontainer/sqlcontainer-architecture.asciidoc b/documentation/sqlcontainer/sqlcontainer-architecture.asciidoc new file mode 100644 index 0000000000..ff0dd6fdd3 --- /dev/null +++ b/documentation/sqlcontainer/sqlcontainer-architecture.asciidoc @@ -0,0 +1,50 @@ +--- +title: Architecture +order: 1 +layout: page +--- + +[[sqlcontainer.architecture]] += Architecture + +The architecture of SQLContainer is relatively simple. [classname]#SQLContainer# +is the class implementing the Vaadin [classname]#Container# interfaces and +providing access to most of the functionality of this add-on. The standard +Vaadin [classname]#Property# and [classname]#Item# interfaces have been +implementd as the [classname]#ColumnProperty# and [classname]#RowItem# classes. +Item IDs are represented by [classname]#RowId# and [classname]#TemporaryRowId# +classes. The [classname]#RowId# class is built based on the primary key columns +of the connected database table or query result. + +In the [package]#connection# package, the [classname]#JDBCConnectionPool# +interface defines the requirements for a connection pool implementation. Two +implementations of this interface are provided: +[classname]#SimpleJDBCConnectionPool# provides a simple yet very usable +implementation to pool and access JDBC connections. +[classname]#J2EEConnectionPool# provides means to access J2EE DataSources. + +The [package]#query# package contains the [classname]#QueryDelegate# interface, +which defines everything the SQLContainer needs to enable reading and writing +data to and from a database. As discussed earlier, two implementations of this +interface are provided: [classname]#TableQuery# for automatic read-write support +for a database table, and [classname]#FreeformQuery# for customizing the query, +sorting, filtering and writing; this is done by implementing relevant methods of +the [classname]#FreeformStatementDelegate# interface. + +The [package]#query# package also contains [classname]#Filter# and +[classname]#OrderBy# classes which have been written to provide an alternative +to the standard Vaadin container filtering and make sorting non-String +properties a bit more user friendly. + +Finally, the [package]#generator# package contains a [classname]#SQLGenerator# +interface, which defines the kind of queries that are required by the +[classname]#TableQuery# class. The provided implementations include support for +HSQLDB, MySQL, PostgreSQL ( [classname]#DefaultSQLGenerator#), Oracle ( +[classname]#OracleGenerator#) and Microsoft SQL Server ( +[classname]#MSSQLGenerator#). A new or modified implementations may be provided +to gain compatibility with older versions or other database servers. + +For further details, please refer to the SQLContainer API documentation. + + + |