Java天空

           

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

          ibatis操作oracle數(shù)據(jù)庫(kù)時(shí),如果出現(xiàn)空值,ibatis不是插入NULL,而是出現(xiàn)異常,異常信息大致如下:

          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: 無(wú)效的列類型
              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當(dāng)該字段出現(xiàn)NULL值該用什么值來(lái)替代,方法有2種,如下:

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

          支持的類型在 java.sql.Types 中列示出來(lái)了
          注意:DATA 類型默認(rèn)不能為NULL

          方法二(parameterMap):
          使用這個(gè)方法時(shí),首先應(yīng)保證你的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對(duì)應(yīng)的記錄到數(shù)據(jù)庫(kù)中 -->
           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 應(yīng)用程序向 Oralce 數(shù)據(jù)表字段插入 NULL 值
                      作者:肥熊熊

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

          評(píng)論

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

          學(xué)習(xí)中。  回復(fù)  更多評(píng)論   

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          友情鏈接

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 咸丰县| 恭城| 安仁县| 商都县| 南投县| 武城县| 绵阳市| 卢龙县| 湖南省| 嘉义县| 高碑店市| 曲靖市| 萨迦县| 师宗县| 鸡泽县| 额济纳旗| 临海市| 苍南县| 朝阳市| 台南县| 西林县| 建阳市| 柏乡县| 奇台县| 普定县| 芜湖市| 台中市| 新郑市| 玛纳斯县| 定兴县| 沙坪坝区| 青阳县| 合水县| 桓台县| 阿克苏市| 鄂伦春自治旗| 澄江县| 墨竹工卡县| 镇沅| 肥东县| 厦门市|