Java天空

           

          ibatis操作oracle數據庫時,空值(null)異常的不完全解決方法

          ibatis操作oracle數據庫時,如果出現空值,ibatis不是插入NULL,而是出現異常,異常信息大致如下:

          Caused by: com.ibatis.common.jdbc.exception.NestedSQLException:   
          --- The error occurred in [someSqlMapFile.xml].  
          --- The error occurred while applying a parameter map.  
          --- Check the insertUser-InlineParameterMap.  
          --- Check the parameter mapping for the '[someProperty]' property.  
          --- Cause: java.sql.SQLException: 無效的列類型
              at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate(GeneralStatement.java:
          91)
              at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.insert(SqlMapExecutorDelegate.java:
          447)
              at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.insert(SqlMapSessionImpl.java:
          82)
              at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.insert(SqlMapClientImpl.java:
          59)


          如果你先插入空值,必須告訴IBatis當該字段出現NULL值該用什么值來替代,方法有2種,如下:

          方法一(parameterClass):
          1 INSERT INTO TEST(ID, NAME, PASSWD) VALUES (#id#,#name#, #passwd:VARCHAR:NULL#)

          支持的類型在 java.sql.Types 中列示出來了
          注意:DATA 類型默認不能為NULL

          方法二(parameterMap):
          使用這個方法時,首先應保證你的Oracle jdbc driver是10G以上版本,不然也是白搭。

           1 <parameterMap id="insert-person-paraMap" class="com.unmi.Person" >
           2     <parameter property="id"/>
           3     <parameter property="name"/>
           4     <parameter property="passwd" jdbcType="VARCHAR"/>
           5 </parameterMap>
           6     
           7 <!-- 插入一條Person對應的記錄到數據庫中 -->
           8 <insert id="insertPerson" parameterMap="insert-person-paraMap">
           9     INSERT INTO PERSON (ID, NAME, PASSWD) VALUES (?,?,?)
          10 </insert>
          11 

          參考:http://www.aygfsteel.com/fatbear/archive/2007/06/07/122607.html 
                      iBatis 應用程序向 Oralce 數據表字段插入 NULL 值
                      作者:肥熊熊

          posted on 2007-08-16 16:18 YY 閱讀(4290) 評論(1)  編輯  收藏 所屬分類: ibatis

          評論

          # re: ibatis操作oracle數據庫時,空值(null)異常的不完全解決方法 2007-08-16 16:36 游戲天下

          學習中。  回復  更多評論   

          導航

          統計

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          友情鏈接

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 汉川市| 六盘水市| 都兰县| 应用必备| 皮山县| 嘉黎县| 拉孜县| 凌源市| 元阳县| 南木林县| 海宁市| 建瓯市| 辰溪县| 琼结县| 碌曲县| 婺源县| 丰城市| 景德镇市| 金寨县| 天全县| 九龙坡区| 常山县| 高雄市| 景谷| 扎赉特旗| 阿拉尔市| 林周县| 洪泽县| 道真| 湟源县| 慈溪市| 德江县| 溧水县| 三原县| 江永县| 宣汉县| 镇巴县| 读书| 新疆| 沛县| 龙游县|