You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
1.9 KiB
31 lines
1.9 KiB
[[jdbc-choose-style]] |
|
= Choosing an Approach for JDBC Database Access |
|
|
|
You can choose among several approaches to form the basis for your JDBC database access. |
|
In addition to three flavors of `JdbcTemplate`, a new `SimpleJdbcInsert` and |
|
`SimpleJdbcCall` approach optimizes database metadata, and the RDBMS Object style takes a |
|
more object-oriented approach similar to that of JDO Query design. Once you start using |
|
one of these approaches, you can still mix and match to include a feature from a |
|
different approach. All approaches require a JDBC 2.0-compliant driver, and some |
|
advanced features require a JDBC 3.0 driver. |
|
|
|
* `JdbcTemplate` is the classic and most popular Spring JDBC approach. This |
|
"`lowest-level`" approach and all others use a JdbcTemplate under the covers. |
|
* `NamedParameterJdbcTemplate` wraps a `JdbcTemplate` to provide named parameters |
|
instead of the traditional JDBC `?` placeholders. This approach provides better |
|
documentation and ease of use when you have multiple parameters for an SQL statement. |
|
* `SimpleJdbcInsert` and `SimpleJdbcCall` optimize database metadata to limit the amount |
|
of necessary configuration. This approach simplifies coding so that you need to |
|
provide only the name of the table or procedure and provide a map of parameters matching |
|
the column names. This works only if the database provides adequate metadata. If the |
|
database does not provide this metadata, you have to provide explicit |
|
configuration of the parameters. |
|
* RDBMS objects — including `MappingSqlQuery`, `SqlUpdate`, and `StoredProcedure` — |
|
require you to create reusable and thread-safe objects during initialization of your |
|
data-access layer. This approach is modeled after JDO Query, wherein you define your |
|
query string, declare parameters, and compile the query. Once you do that, |
|
`execute(...)`, `update(...)`, and `findObject(...)` methods can be called multiple |
|
times with various parameter values. |
|
|
|
|
|
|
|
|