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