聯(lián)系博主          博客地圖
                     
          在項(xiàng)目中需要向一數(shù)據(jù)庫(kù)表中插入xmltype類(lèi)型的值,當(dāng)數(shù)據(jù)值未超過(guò)4000時(shí),沒(méi)有問(wèn)題,超過(guò)4000需要寫(xiě)類(lèi)型的處理類(lèi)。
          其中回調(diào)類(lèi)名稱(chēng)為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("開(kāi)始判斷是否是實(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)取年輕的心

           

          Feedback

          # re: ibatis處理oracle數(shù)據(jù)庫(kù)中xmltype的問(wèn)題[未登錄](méi)  回復(fù)  更多評(píng)論   

          2012-11-21 12:52 by 飛鳥(niǎo)
          有遇到類(lèi)似問(wèn)題的嗎

          # re: ibatis處理oracle數(shù)據(jù)庫(kù)中xmltype的問(wèn)題  回復(fù)  更多評(píng)論   

          2012-11-22 12:36 by 怎么羨慕天空的飛鳥(niǎo)
          已解決,
          問(wèn)題是ibatis使用了代理。
          添加如下代碼即可解決
          PreparedStatement ps=((PreparedStatementLogProxy)Proxy.getInvocationHandler( setter.getPreparedStatement())).getPreparedStatement();

          # re: ibatis處理oracle數(shù)據(jù)庫(kù)中xmltype的問(wèn)題  回復(fù)  更多評(píng)論   

          2013-05-07 17:12 by 蟲(chóng)蟲(chóng)大帥
          能詳細(xì)說(shuō)下是如何解決的嗎?

          Copyright © 怎么羨慕天空的飛鳥(niǎo)

          主站蜘蛛池模板: 兴海县| 六枝特区| 郯城县| 手游| 营口市| 宾阳县| 通许县| 剑川县| 高淳县| 当阳市| 贵港市| 伊金霍洛旗| 赤城县| 苍南县| 文水县| 舒兰市| 鸡泽县| 积石山| 静海县| 玛多县| 大荔县| 镇安县| 延津县| 右玉县| 馆陶县| 大关县| 滨州市| 武邑县| 自贡市| 时尚| 广元市| 河曲县| 永州市| 盐池县| 龙泉市| 仙游县| 横山县| 前郭尔| 繁峙县| 武安市| 博野县|