ibatis處理oracle數(shù)據(jù)庫(kù)中xmltype的問(wèn)題
Posted on 2012-11-20 15:33 怎么羨慕天空的飛鳥 閱讀(821) 評(píng)論(3) 編輯 收藏 所屬分類: java
在項(xiàng)目中需要向一數(shù)據(jù)庫(kù)表中插入xmltype類型的值,當(dāng)數(shù)據(jù)值未超過(guò)4000時(shí),沒有問(wèn)題,超過(guò)4000需要寫類型的處理類。
其中回調(diào)類名稱為XMLTypeHandlerCallback
關(guān)鍵方法如下:標(biāo)紅的為報(bào)錯(cuò)的信息,Cause: java.lang.UnsupportedOperationException: XMLType mapping only supported for Oracle RDBMS
這個(gè)問(wèn)題想不太明白,請(qǐng)執(zhí)教。
核心: 勇敢進(jìn)取年輕的心
其中回調(diào)類名稱為XMLTypeHandlerCallback
關(guān)鍵方法如下:標(biāo)紅的為報(bào)錯(cuò)的信息,Cause: java.lang.UnsupportedOperationException: XMLType mapping only supported for Oracle RDBMS
這個(gè)問(wèn)題想不太明白,請(qǐng)執(zhí)教。
public void setParameter(ParameterSetter setter, Object parameter)
throws SQLException {
System.out.println(setter.getPreparedStatement().getClass().toString());
System.out.println("開始判斷是否是實(shí)例");
if (setter.getPreparedStatement() instanceof OraclePreparedStatement) {
System.out.println("結(jié)束實(shí)例判斷");
OraclePreparedStatement ops = (OraclePreparedStatement) setter.getPreparedStatement();
System.out.println("blw002");
if (parameter == null) {
System.out.println("blw");
ops.setNull(setter.getParameterIndex(),
oracle.jdbc.OracleTypes.OPAQUE, "SYS.XMLTYPE");
} else {
System.out.println(parameter.toString());
XMLType xmlInput = XMLType.createXML(ops.getConnection(),
(Document) parameter);
// Document doc = DocumentHelper.parseText(parameter.toString(), false);
// XMLType xmlInput = XMLType.createXML(ops.getConnection(),doc);
// System.out.println(xmlInput.getStringVal());
ops.setObject(setter.getParameterIndex(), xmlInput);
}
} else {
throw new UnsupportedOperationException(
"XMLType mapping only supported for Oracle RDBMS");
}
}
核心: 勇敢進(jìn)取年輕的心