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.io.StringReader;
23 import java.sql.Clob;
24 import java.sql.SQLException;
25 import java.sql.Types;
26
27
28
29
30 public class ClobTypeHandlerCallback implements TypeHandlerCallback {
31
32 @Override
33 public Object getResult(ResultGetter getter) throws SQLException {
34 String value;
35 Clob clob = getter.getClob();
36 if (!getter.wasNull()) {
37 int size = (int) clob.length();
38 value = clob.getSubString(1, size);
39 } else {
40 value = null;
41 }
42
43 return value;
44 }
45
46 @Override
47 public void setParameter(ParameterSetter setter, Object parameter) throws SQLException {
48 String s = (String) parameter;
49 if (s != null) {
50 StringReader reader = new StringReader(s);
51 setter.setCharacterStream(reader, s.length());
52 } else {
53 setter.setNull(Types.CLOB);
54 }
55 }
56
57 @Override
58 public Object valueOf(String s) {
59 return s;
60 }
61
62 }