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.sql.CallableStatement;
19 import java.sql.PreparedStatement;
20 import java.sql.ResultSet;
21 import java.sql.SQLException;
22 import java.sql.SQLXML;
23
24
25
26
27
28
29
30 public class SqlxmlTypeHandler extends BaseTypeHandler<String> {
31
32 @Override
33 public void setNonNullParameter(PreparedStatement ps, int i, String parameter, JdbcType jdbcType)
34 throws SQLException {
35 SQLXML sqlxml = ps.getConnection().createSQLXML();
36 try {
37 sqlxml.setString(parameter);
38 ps.setSQLXML(i, sqlxml);
39 } finally {
40 sqlxml.free();
41 }
42 }
43
44 @Override
45 public String getNullableResult(ResultSet rs, String columnName) throws SQLException {
46 return sqlxmlToString(rs.getSQLXML(columnName));
47 }
48
49 @Override
50 public String getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
51 return sqlxmlToString(rs.getSQLXML(columnIndex));
52 }
53
54 @Override
55 public String getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
56 return sqlxmlToString(cs.getSQLXML(columnIndex));
57 }
58
59 protected String sqlxmlToString(SQLXML sqlxml) throws SQLException {
60 if (sqlxml == null) {
61 return null;
62 }
63 try {
64 return sqlxml.getString();
65 } finally {
66 sqlxml.free();
67 }
68 }
69
70 }