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 public void setParameter(PreparedStatement ps, int i, Object parameter, String jdbcType) throws SQLException {
46 ParameterSetter setter = new ParameterSetterImpl(ps, i);
47 callback.setParameter(setter, parameter);
48 }
49
50 public Object getResult(ResultSet rs, String columnName) throws SQLException {
51 ResultGetter getter = new ResultGetterImpl(rs, columnName);
52 return callback.getResult(getter);
53 }
54
55 public Object getResult(ResultSet rs, int columnIndex) throws SQLException {
56 ResultGetter getter = new ResultGetterImpl(rs, columnIndex);
57 return callback.getResult(getter);
58 }
59
60 public Object getResult(CallableStatement cs, int columnIndex) throws SQLException {
61 ResultGetter getter = new ResultGetterImpl(new CallableStatementResultSet(cs), columnIndex);
62 return callback.getResult(getter);
63 }
64
65 public Object valueOf(String s) {
66 return callback.valueOf(s);
67 }
68
69 }