package jef.database.dialect.type; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.SQLXML; import jef.database.dialect.DatabaseDialect; import jef.database.jdbc.result.IResultSet; public class XmlStringMapping extends AColumnMapping{ public Object jdbcSet(PreparedStatement st, Object value, int index, DatabaseDialect session) throws SQLException { String s=String.valueOf(value); if(s==null || s.length()==0){ st.setNull(index,java.sql.Types.SQLXML); }else{ SQLXML xml=st.getConnection().createSQLXML(); xml.setString(String.valueOf(value)); st.setSQLXML(index, xml); } return value; } public int getSqlType() { return java.sql.Types.SQLXML; } @Override protected String getSqlExpression(Object value, DatabaseDialect profile) { return super.wrapSqlStr(value.toString()); } public Object jdbcGet(IResultSet rs, int n) throws SQLException { return rs.getString(n); } @Override protected Class<?> getDefaultJavaType() { return String.class; } @Override public void jdbcUpdate(ResultSet rs, String columnIndex, Object value, DatabaseDialect dialect) throws SQLException { // SQLXML xml=st.getConnection().createSQLXML(); // xml.setString(String.valueOf(value)); // rs.updateSQLXML(columnIndex, xml); rs.updateObject(columnIndex, value); } }