1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.dbunit.dataset.datatype;
23
24 import java.sql.Blob;
25 import java.sql.PreparedStatement;
26 import java.sql.ResultSet;
27 import java.sql.SQLException;
28 import java.sql.Types;
29
30 import org.slf4j.Logger;
31 import org.slf4j.LoggerFactory;
32
33
34
35
36
37
38 public class BlobDataType extends BytesDataType
39 {
40 private static final Logger logger =
41 LoggerFactory.getLogger(BlobDataType.class);
42
43 public BlobDataType()
44 {
45 super("BLOB", Types.BLOB);
46 }
47
48 public BlobDataType(final String name, final int sqlType)
49 {
50 super(name, sqlType);
51 }
52
53 @Override
54 public Object getSqlValue(final int column, final ResultSet resultSet)
55 throws SQLException, TypeCastException
56 {
57 logger.debug("getSqlValue(column={}, resultSet={}) - start", column,
58 resultSet);
59 final Blob rawValue = resultSet.getBlob(column);
60 final Object value = resultSet.wasNull() ? null : typeCast(rawValue);
61 logger.debug("getSqlValue: column={}, value is null?={}", column,
62 value == null);
63 return value;
64 }
65
66 @Override
67 public void setSqlValue(final Object value, final int column,
68 final PreparedStatement statement)
69 throws SQLException, TypeCastException
70 {
71 if (logger.isDebugEnabled())
72 {
73 logger.debug(
74 "setSqlValue(value={}, column={}, statement={}) - start",
75 value, String.valueOf(column), statement);
76 }
77
78 statement.setObject(column, typeCast(value), super.getSqlType());
79 }
80 }