posts - 110, comments - 101, trackbacks - 0, articles - 7
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
          在ibatis中不需要關(guān)注這些參數(shù) 而轉(zhuǎn)到mybatis后 如果字段值為空 必須設置jdbcType

          insert into testTable
             (ID,
             NAME,
             DESCRIPTION,
             IMAGEURL,
             LINKURL,
             ISALWAYS,
             ISDISPLAYINDEX,
             DISPLAYWEIGHT,
             STARTTIME,
             ENDTIME,
             CREATOR,
             CREATTIME,
             MODIFYTIME)
            values
             (SEQ_ACTIVITY_TABLE.NEXTVAL,
             #{name},
             #{desc,jdbcType=VARCHAR},
             #{imageUrl,jdbcType=VARCHAR},
             #{linkUrl,jdbcType=VARCHAR},
             #{isAlways,jdbcType=CHAR},
             #{isDisplayIndex,jdbcType=CHAR},
             #{displayWeight,jdbcType=VARCHAR},
             #{startTime,jdbcType=DATE},
             #{endTime,jdbcType=DATE},
             #{creator,jdbcType=VARCHAR},
             sysdate,
             sysdate
             )
           </insert>

          這些設置之多,太煩了,最讓人煩的是  jdbcType = DATE,類型還必須大寫,不能小寫。
          如下面的例子,將DATE 改成 Date 。結(jié)果讓人很抓狂啊!!!
          insert into testTable
             (ID,
             NAME,
             DESCRIPTION,
             IMAGEURL,
             LINKURL,
             ISALWAYS,
             ISDISPLAYINDEX,
             DISPLAYWEIGHT,
             STARTTIME,
             ENDTIME,
             CREATOR,
             CREATTIME,
             MODIFYTIME)
            values
             (SEQ_ACTIVITY_TABLE.NEXTVAL,
             #{name},
             #{desc,jdbcType=VARCHAR},
             #{imageUrl,jdbcType=VARCHAR},
             #{linkUrl,jdbcType=VARCHAR},
             #{isAlways,jdbcType=CHAR},
             #{isDisplayIndex,jdbcType=CHAR},
             #{displayWeight,jdbcType=VARCHAR},
             #{startTime,jdbcType=Date},
             #{endTime,jdbcType=DATE},
             #{creator,jdbcType=VARCHAR},
             sysdate,
             sysdate
             )
           </insert>
          org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException: Error resolving JdbcType. Cause: java.lang.IllegalArgumentException: No enum const class org.apache.ibatis.type.JdbcType.Date
          	org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:75)
          	org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:368)
          更坑爹的在后面,上面insert時的時候用#{endTime,jdbcType=DATE},可以將時間插入成功,且可以精確到時分秒
          但如果在update語句中也這樣使用,那你得到的只會有日期,這夠坑爹的了吧 ,尼瑪  比起ibatis方便之處差遠了
          要想在update語句中 將時間格式化成時分秒 不得不再加一個類型 如下面:
          startTime = #{startTime,javaType=DATE, jdbcType=VARCHAR}














          評論

          # re: mybatis No enum const class org.apache.ibatis.type.JdbcType.Date 坑爹的配置  回復  更多評論   

          2014-08-12 11:10 by rit
          還是不行哦

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 巴林右旗| 新竹县| 周口市| 纳雍县| 腾冲县| 武乡县| 保亭| 黑龙江省| 凤凰县| 安多县| 无极县| 四子王旗| 清流县| 信宜市| 沅陵县| 大渡口区| 民勤县| 大姚县| 舞阳县| 牙克石市| 神木县| 五大连池市| 桂平市| 龙游县| 山西省| 泾源县| 耒阳市| 阜平县| 渝中区| 三河市| 新田县| 前郭尔| 江阴市| 大田县| 从化市| 自治县| 札达县| 保山市| 达州市| 剑川县| 遵义市|