[[sqlcontainer]] == Vaadin SQLContainer Vaadin SQLContainer is a container implementation that allows easy and customizable access to data stored in various SQL-speaking databases. SQLContainer supports two types of database access. Using [classname]#TableQuery#, the pre-made query generators will enable fetching, updating, and inserting data directly from the container into a database table - automatically, whereas [classname]#FreeformQuery# allows the developer to use their own, probably more complex query for fetching data and their own optional implementations for writing, filtering and sorting support - item and property handling as well as lazy loading will still be handled automatically. In addition to the customizable database connection options, SQLContainer also extends the Vaadin [classname]#Container# interface to implement more advanced and more database-oriented filtering rules. Finally, the add-on also offers connection pool implementations for JDBC connection pooling and JEE connection pooling, as well as integrated transaction support; auto-commit mode is also provided. The purpose of this section is to briefly explain the architecture and some of the inner workings of SQLContainer. It will also give the readers some examples on how to use SQLContainer in their own applications. The requirements, limitations and further development ideas are also discussed. SQLContainer is available from the Vaadin Directory under the same unrestrictive Apache License 2.0 as the Vaadin Framework itself. include::sqlcontainer-architecture.asciidoc[leveloffset=+2] include::sqlcontainer-getting-started.asciidoc[leveloffset=+2] include::sqlcontainer-filteringsorting.asciidoc[leveloffset=+2] include::sqlcontainer-editing.asciidoc[leveloffset=+2] include::sqlcontainer-caching.asciidoc[leveloffset=+2] include::sqlcontainer-referencing.asciidoc[leveloffset=+2] include::sqlcontainer-freeform.asciidoc[leveloffset=+2] include::sqlcontainer-nonimplemented.asciidoc[leveloffset=+2] include::sqlcontainer-limitations.asciidoc[leveloffset=+2]