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)

          隨筆分類

          隨筆檔案

          友情鏈接

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 闸北区| 金塔县| 吉林省| 元氏县| 三原县| 宁德市| 湟源县| 柳林县| 常德市| 从江县| 武威市| 周至县| 曲松县| 府谷县| 剑川县| 成都市| 云安县| 凤台县| 交城县| 镇康县| 庆云县| 正镶白旗| 北安市| 五莲县| 东辽县| 兴城市| 肇州县| 车致| 石棉县| 沛县| 恩施市| 吉隆县| 平度市| 淳化县| 赤峰市| 舒兰市| 东至县| 吉安县| 开远市| 临沧市| 丘北县|