[[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]
edesign
Apache XML Graphics FOP: https://github.com/apache/xmlgraphics-fop
/* * Copyright 2006 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *//* $Id$ */packageorg.apache.fop.layoutengine;importorg.apache.fop.apps.FormattingResults;importorg.w3c.dom.Node;/** * Simple check that requires a result property to evaluate to the expected value */publicclassResultCheckimplementsLayoutEngineCheck{privateStringexpected;privateStringproperty;/** * Creates a new instance * @param expected expected value * @param property property of which the value needs to be evaluated */publicResultCheck(Stringexpected,Stringproperty){this.expected=expected;this.property=property;}/** * Creates a new instance from a DOM node. * @param node DOM node that defines this check */publicResultCheck(Nodenode){this.expected=node.getAttributes().getNamedItem("expected").getNodeValue();this.property=node.getAttributes().getNamedItem("property").getNodeValue();}/* (non-Javadoc) * @see LayoutEngineCheck#check(LayoutResult) */publicvoidcheck(LayoutResultresult){FormattingResultsresults=result.getResults();Stringactual;if(property.equals("pagecount")){actual=Integer.toString(results.getPageCount());}else{thrownewRuntimeException("No such property test: "+property);}if(!expected.equals(actual)){thrownewRuntimeException("Expected property to evaluate to '"+expected+"', but got '"+actual+"' ("+this+")");}}/** @see java.lang.Object#toString() */publicStringtoString(){return"Property: "+property;}}