Java Reference
In-Depth Information
Named parameters can also be used in batch update. You can provide either a Map array or a
SqlParameterSource array for the parameter values.
package com.apress.springenterpriserecipes.vehicle;
...
import org.springframework.jdbc.core.namedparam.BeanPropertySqlParameterSource;
import org.springframework.jdbc.core.namedparam.SqlParameterSource;
import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;
public class JdbcVehicleDao extends SimpleJdbcDaoSupport implements VehicleDao {
...
public void insertBatch(List<Vehicle> vehicles) {
String sql = "INSERT INTO VEHICLE (VEHICLE_NO, COLOR, WHEEL, SEAT) "
+ "VALUES (:vehicleNo, :color, :wheel, :seat)";
List<SqlParameterSource> parameters = new ArrayList<SqlParameterSource>();
for (Vehicle vehicle : vehicles) {
parameters.add(new BeanPropertySqlParameterSource(vehicle));
}
getSimpleJdbcTemplate().batchUpdate(sql,
parameters.toArray(new SqlParameterSource[0]));
}
}
3-6. Handling Exceptions in the Spring JDBC Framework
Problem
Many of the JDBC APIs declare throwing java.sql.SQLException , a checked exception that must be
caught. It's very troublesome to handle this kind of exception every time you perform a database
operation. You often have to define your own policy to handle this kind of exception. Failure to do so
may lead to inconsistent exception handling.
Solution
The Spring framework offers a consistent data access exception-handling mechanism for its data access
module, including the JDBC framework. In general, all exceptions thrown by the Spring JDBC framework
are subclasses of DataAccessException , a type of RuntimeException that you are not forced to catch. It's
the root exception class for all exceptions in Spring's data access module.
Figure 3-1 shows only part of the DataAccessException hierarchy in Spring's data access module. In
total, there are more than 30 exception classes defined for different categories of data access exceptions.
 
Search WWH ::




Custom Search