Spring Framework Tutorial
15 April 2003
This tutorial covers the main packages in the Spring Framework. For full details, we refer you to Rod
Johnson’s book, Expert One-on-One J2EE Design and Development, published by Wrox Press in 2002. The
book’s ISBN number is 1-86100-784-1.
The code for the Spring Framework is contained in packagecom.interface21. We provide UML diagrams
for the subpackages, as well as code samples.
Setting up for the samples
The samples have been written using the MySQL database (www.mysql.com), Tomcat (jakarta.apache.org/tomcat)
and JBoss(www.jboss.org). We refer you to these web sites for setting up the environment correctly. In
MySQL, create a database named test, a user test with passwordtest, and grant user test all rights:
grant all on test.* to test@localhost identified by ’test’;
If you use a diﬀerent database, read the comments at the top of the samples ﬁles, they will direct you to
the spots in the code you will have to change for your database.
Building the tutorials
The tutorials can be built using the provided Ant script (you can get ant athttp://jakarta.apache.org/ant).
You may need to edit the build.properties ﬁle to set paths correctly for your system.
Running the tutorials
We provide a shell script, runtest.sh, and a batch ﬁle, runtest.bat, for running a single tutorial. You may
need to edit these ﬁles to set the paths correctly.
The JDBC Package
Data access is taken care of in the com.interface21.jdbc packageand its subpackages. These packages are
non-intrusive, and so you can use them separately from the rest of the framework to implement persistence
in your application.
There are two main packages, com.interface21.jdbc.core, which implements low-level persistence, and the
high-level com.interface21.jdbc.object, which presents an object-oriented view of the low-level package.
Clients of the package - i.e. you, as the developer - should not have to concern themselves with SQLExceptions, as these will not be very informative to your users. Also, because SQLExceptions are checked
exceptions, they have to be caught. The Spring Framework takes a diﬀerent approach : checked SQLExceptions are converted to unchecked DataAccessException and its subclasses. Anumber of pathological
conditions are recognized, through the SQLExceptionTranslater interface and its implementing classes, and
will result in subclasses of DataAccessException being thrown. For example, a unique key integrity violation
will cause a DataIntegrityViolationException to be thrown. It is up to you, as the developer, to catch this
exception – if your code can recover from it – or not,thereby letting it percolate upwards.
The com.interface21.jdbc.object Package
The com.interface21.jdbc.object package provides a hig-level, JDO-like environment for persistence. Queries,
updates and stored procedures are modeled as reusable, threadsafe objects.
The abstract RdbmsOperation class is the root of the hierarchy. It holds a javax.sql.DataSource and a
SQL string asinstance variables, and allows bind parameters to be declared. Before being used, a RdbmsOperation must be compiled. The exact meaning of the compilation operation varies between subclasses. After
compilation, no more parameters can be added, but the operation can be performed repeatedly. Parameters
are declared using the declareParameter() method.
The abstract SqlOperation class extendsRdbmsOperation and is used as a base class for queries and
updates. The compilation process checks that the number of parameters matches the number of parameter
placeholders in the SQL string.
The SqlQuery class is used for queries; it requires the user to implement method newResultReader,
which should return a ResultReader for the returned ResultSet. The MappingSqlQuery class is a subclass
Ler documento completo
Por favor, assinar para o acesso.