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 java.sql.CallableStatement;
19 import java.sql.PreparedStatement;
20 import java.sql.ResultSet;
21 import java.sql.SQLException;
22
23
24
25
26 public class UnknownTypeHandler extends BaseTypeHandler implements TypeHandler {
27
28
29 private TypeHandlerFactory factory;
30
31
32
33
34
35
36
37 public UnknownTypeHandler(TypeHandlerFactory factory) {
38 this.factory = factory;
39 }
40
41 @Override
42 public void setParameter(PreparedStatement ps, int i, Object parameter, String jdbcType) throws SQLException {
43 Class searchClass = parameter.getClass();
44 if (searchClass == null) {
45 searchClass = parameter.getClass();
46 }
47 TypeHandler handler = factory.getTypeHandler(searchClass, jdbcType);
48 handler.setParameter(ps, i, parameter, jdbcType);
49 }
50
51 @Override
52 public Object getResult(ResultSet rs, String columnName) throws SQLException {
53 Object object = rs.getObject(columnName);
54 if (rs.wasNull()) {
55 return null;
56 }
57 return object;
58 }
59
60 @Override
61 public Object getResult(ResultSet rs, int columnIndex) throws SQLException {
62 Object object = rs.getObject(columnIndex);
63 if (rs.wasNull()) {
64 return null;
65 }
66 return object;
67 }
68
69 @Override
70 public Object getResult(CallableStatement cs, int columnIndex) throws SQLException {
71 Object object = cs.getObject(columnIndex);
72 if (cs.wasNull()) {
73 return null;
74 }
75 return object;
76 }
77
78 @Override
79 public Object valueOf(String s) {
80 return s;
81 }
82
83 @Override
84 public boolean equals(Object object, String string) {
85 if (object == null || string == null) {
86 return object == string;
87 }
88 TypeHandler handler = factory.getTypeHandler(object.getClass());
89 Object castedObject = handler.valueOf(string);
90 return object.equals(castedObject);
91 }
92
93 }