@ -2214,7 +2214,7 @@ configure the application context to take advantage of these annotations.
@@ -2214,7 +2214,7 @@ configure the application context to take advantage of these annotations.
[[jdbc-introduction]]
=== Introduction to Spring Framework JDBC
=== Introduction to Spring Framework's JDBC support
The value-add provided by the Spring Framework JDBC abstraction is perhaps best shown by
the sequence of actions outlined in the table below. The table shows what actions Spring
new SqlOutParameter("out_first_name", Types.VARCHAR),
new SqlOutParameter("out_first_name", Types.VARCHAR),
----
The first line with the `SqlParameter` declares an IN parameter. IN parameters can be
@ -4149,10 +4149,10 @@ used for both stored procedure calls and for queries using the `SqlQuery` and it
@@ -4149,10 +4149,10 @@ used for both stored procedure calls and for queries using the `SqlQuery` and it
subclasses covered in the following section.
The second line with the `SqlOutParameter` declares an `out` parameter to be used in the
stored procedure call. There is also an `SqlInOutParameter` for `I` `nOut` parameters,
stored procedure call. There is also an `SqlInOutParameter` for `InOut` parameters,
parameters that provide an `in` value to the procedure and that also return a value.
For `i` `n` parameters, in addition to the name and the SQL type, you can specify a
For `in` parameters, in addition to the name and the SQL type, you can specify a
scale for numeric data or a type name for custom database types. For `out` parameters
you can provide a `RowMapper` to handle mapping of rows returned from a REF cursor.
Another option is to specify an `SqlReturnType` that enables you to define customized
@ -4295,8 +4295,7 @@ the supplied `ResultSet`.
@@ -4295,8 +4295,7 @@ the supplied `ResultSet`.
To pass parameters to a stored procedure that has one or more input parameters in its
definition in the RDBMS, you can code a strongly typed `execute(..)` method that would
delegate to the superclass' untyped `execute(Map parameters)` method (which has
`protected` access); for example:
delegate to the untyped `execute(Map)` method in the superclass; for example:
[source,java,indent=0]
[subs="verbatim,quotes"]
@ -4337,7 +4336,7 @@ delegate to the superclass' untyped `execute(Map parameters)` method (which has
@@ -4337,7 +4336,7 @@ delegate to the superclass' untyped `execute(Map parameters)` method (which has
=== Common problems with parameter and data value handling
Common problems with parameters and data values exist in the different approaches
@ -4449,9 +4448,13 @@ with the same instance variable `lobHandler` and a reference to a `DefaultLobHan
@@ -4449,9 +4448,13 @@ with the same instance variable `lobHandler` and a reference to a `DefaultLobHan
new RowMapper<Map<String, Object>>() {
public Map<String, Object> mapRow(ResultSet rs, int i) throws SQLException {
Map<String, Object> results = new HashMap<String, Object>();