1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.ibatis.type;
17
18 import java.io.ByteArrayInputStream;
19 import java.sql.Blob;
20 import java.sql.CallableStatement;
21 import java.sql.PreparedStatement;
22 import java.sql.ResultSet;
23 import java.sql.SQLException;
24
25
26
27
28 public class BlobByteObjectArrayTypeHandler extends BaseTypeHandler<Byte[]> {
29
30 @Override
31 public void setNonNullParameter(PreparedStatement ps, int i, Byte[] parameter, JdbcType jdbcType)
32 throws SQLException {
33 ByteArrayInputStream bis = new ByteArrayInputStream(ByteArrayUtils.convertToPrimitiveArray(parameter));
34 ps.setBinaryStream(i, bis, parameter.length);
35 }
36
37 @Override
38 public Byte[] getNullableResult(ResultSet rs, String columnName) throws SQLException {
39 Blob blob = rs.getBlob(columnName);
40 return getBytes(blob);
41 }
42
43 @Override
44 public Byte[] getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
45 Blob blob = rs.getBlob(columnIndex);
46 return getBytes(blob);
47 }
48
49 @Override
50 public Byte[] getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
51 Blob blob = cs.getBlob(columnIndex);
52 return getBytes(blob);
53 }
54
55 private Byte[] getBytes(Blob blob) throws SQLException {
56 Byte[] returnValue = null;
57 if (blob != null) {
58 returnValue = ByteArrayUtils.convertToObjectArray(blob.getBytes(1, (int) blob.length()));
59 }
60 return returnValue;
61 }
62 }