aboutsummaryrefslogtreecommitdiffstats
path: root/documentation/sqlcontainer/sqlcontainer-architecture.asciidoc
diff options
context:
space:
mode:
authorelmot <elmot@vaadin.com>2015-11-23 14:56:59 +0200
committerelmot <elmot@vaadin.com>2015-11-23 15:02:49 +0200
commitf6874bde3d945c8b2d1b5c17ab50e2d0f1f8ff00 (patch)
tree60016a048dbb231ba3a7095a71a96deee0df8c51 /documentation/sqlcontainer/sqlcontainer-architecture.asciidoc
parent9c0eeb4b697ffa1db8f44a91724c9d612e4add50 (diff)
parent4011884ddd073675e7d3539320f8899a43268fd4 (diff)
downloadvaadin-framework-f6874bde3d945c8b2d1b5c17ab50e2d0f1f8ff00.tar.gz
vaadin-framework-f6874bde3d945c8b2d1b5c17ab50e2d0f1f8ff00.zip
Merge branch 'documentation'
Change-Id: I6ef85a35077e6278831b968595c068898cee2770
Diffstat (limited to 'documentation/sqlcontainer/sqlcontainer-architecture.asciidoc')
-rw-r--r--documentation/sqlcontainer/sqlcontainer-architecture.asciidoc50
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.
+
+
+