1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package com.ibatis.sqlmap.engine.type;
17
18 import com.ibatis.sqlmap.client.extensions.ParameterSetter;
19 import com.ibatis.sqlmap.client.extensions.ResultGetter;
20 import com.ibatis.sqlmap.client.extensions.TypeHandlerCallback;
21
22 import java.sql.CallableStatement;
23 import java.sql.PreparedStatement;
24 import java.sql.ResultSet;
25 import java.sql.SQLException;
26
27
28
29
30 public class CustomTypeHandler extends BaseTypeHandler implements TypeHandler {
31
32
33 private TypeHandlerCallback callback;
34
35
36
37
38
39
40
41 public CustomTypeHandler(TypeHandlerCallback callback) {
42 this.callback = callback;
43 }
44
45 @Override
46 public void setParameter(PreparedStatement ps, int i, Object parameter, String jdbcType) throws SQLException {
47 ParameterSetter setter = new ParameterSetterImpl(ps, i);
48 callback.setParameter(setter, parameter);
49 }
50
51 @Override
52 public Object getResult(ResultSet rs, String columnName) throws SQLException {
53 ResultGetter getter = new ResultGetterImpl(rs, columnName);
54 return callback.getResult(getter);
55 }
56
57 @Override
58 public Object getResult(ResultSet rs, int columnIndex) throws SQLException {
59 ResultGetter getter = new ResultGetterImpl(rs, columnIndex);
60 return callback.getResult(getter);
61 }
62
63 @Override
64 public Object getResult(CallableStatement cs, int columnIndex) throws SQLException {
65 ResultGetter getter = new ResultGetterImpl(new CallableStatementResultSet(cs), columnIndex);
66 return callback.getResult(getter);
67 }
68
69 @Override
70 public Object valueOf(String s) {
71 return callback.valueOf(s);
72 }
73
74 }