From the Spring JDBC documentation, I know how to insert a blob using JdbcTemplate
final File blobIn = new File(\"spring2004.jpg\");
final InputStream blobIs
In 2012, SimpleJdbcTemplate is deprecated. This is what I did:
KeyHolder keyHolder = new GeneratedKeyHolder();
List declaredParams = new ArrayList<>();
declaredParams.add(new SqlParameter(Types.VARCHAR));
declaredParams.add(new SqlParameter(Types.BLOB));
declaredParams.add(new SqlParameter(Types.VARCHAR));
declaredParams.add(new SqlParameter(Types.INTEGER));
declaredParams.add(new SqlParameter(Types.INTEGER));
PreparedStatementCreatorFactory pscFactory =
new PreparedStatementCreatorFactory(SQL_CREATE_IMAGE, declaredParams);
pscFactory.setReturnGeneratedKeys(true);
getJdbcTemplate().update(
pscFactory.newPreparedStatementCreator(
new Object[] {
image.getName(),
image.getBytes(),
image.getMimeType(),
image.getHeight(),
image.getWidth()
}), keyHolder);
image.setId(keyHolder.getKey().intValue());
The SQL looks like this:
INSERT INTO image (name, image_bytes, mime_type, height, width) VALUES (?, ?, ?, ?, ?)