盡人事而順天命

          關(guān)注 esb , soa ,設(shè)計(jì)模式,快速組件式開(kāi)發(fā)

             :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            6 Posts :: 0 Stories :: 1 Comments :: 0 Trackbacks
          沒(méi)有想到會(huì)碰到這樣的一個(gè)問(wèn)題,百思不得其解,貼出來(lái)希望哪位也在使用 db2? type2 app jdbc 的兄弟幫忙分析一下: 

          使用 ibatis? sql map以及 dao 框架 ,使用 JTA 事務(wù)管理,在 websphere 5.1 以及 jboss 4.1 上測(cè)試,都出現(xiàn)以下的怪現(xiàn)象: 

          使用? sql map 執(zhí)行 insert? 操作的時(shí)候, 聲明如下的 sql map:

          <insert?id="ppl_t1.insert"?parameterClass="com.surekam.ppl.dao.test.PPLT1">
          ????????asfafdafsdafafsd?values?(#projId#,#name#);
          </insert>
          也就是說(shuō),一個(gè)完全不合法的 sql 語(yǔ)句,但是,在執(zhí)行的時(shí)候, db2 jdbc 居然不報(bào)錯(cuò)!!查找到 ibatis 的 sql 執(zhí)行部分的代碼: SqlExecutor 類(lèi)的: 
           
          ?1public?int?executeUpdate(RequestScope?request,?Connection?conn,?String?sql,?Object[]?parameters)
          ?2??????throws?SQLException?{
          ?3????ErrorContext?errorContext?=?request.getErrorContext();
          ?4????errorContext.setActivity("executing?update");
          ?5????errorContext.setObjectId(sql);
          ?6
          ?7????PreparedStatement?ps?=?null;
          ?8????int?rows?=?0;
          ?9
          10????try?{
          11??????errorContext.setMoreInfo("Check?the?SQL?Statement?(preparation?failed).");
          12??????ps?=?conn.prepareStatement(sql);
          13
          14??????errorContext.setMoreInfo("Check?the?parameters?(set?parameters?failed).");
          15??????request.getParameterMap().setParameters(request,?ps,?parameters);
          16
          17??????errorContext.setMoreInfo("Check?the?statement?(update?failed).");
          18
          19??????ps.execute();
          20??????rows?=?ps.getUpdateCount();
          21????}

          22????finally?{
          23??????closeStatement(ps);
          24????}

          25
          26????return?rows;
          27??}


          其中并沒(méi)有什么特別的地方,可是? PrepardStatement 在執(zhí)行的時(shí)候就是不 拋出 SQLException ,而是處理成 SQLWarning ,可以通過(guò) getWarning 取到錯(cuò)誤信息. 

          而直接自己寫(xiě)一個(gè)測(cè)試,直接去測(cè)試這樣一個(gè)不合法的 sql ,是會(huì)拋出異常的.
          db2jdbc 的 bug ?? 還是其它哪里的環(huán)境設(shè)置?? 

          posted on 2006-04-03 10:11 boss_ch 閱讀(647) 評(píng)論(1)  編輯  收藏 所屬分類(lèi): 技術(shù)隨筆

          Feedback

          # re: 關(guān)于 db2 jdbc 百思不得其解的問(wèn)題 2006-04-27 17:52 兵臨城下
          看不懂!呵呵  回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 广东省| 镇康县| 五家渠市| 古丈县| 万宁市| 含山县| 尉犁县| 大余县| 岚皋县| 余江县| 许昌市| 唐海县| 句容市| 松滋市| 巩留县| 石景山区| 侯马市| 金溪县| 出国| 连南| 堆龙德庆县| 临漳县| 新宾| 谢通门县| 弥勒县| 平邑县| 宁阳县| 宣化县| 阜新| 姜堰市| 册亨县| 庄河市| 稷山县| 曲阜市| 新乐市| 呼伦贝尔市| 东乌珠穆沁旗| 天祝| 肃北| 左权县| 茌平县|