posts - 110, comments - 101, trackbacks - 0, articles - 7
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
          在ibatis中不需要關注這些參數 而轉到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 。結果讓人很抓狂啊!!!
          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
          還是不行哦

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


          網站導航:
           
          主站蜘蛛池模板: 金寨县| 平定县| 兴国县| 滦南县| 府谷县| 宁阳县| 永仁县| 麦盖提县| 桑日县| 邵武市| 修水县| 汕尾市| 大足县| 师宗县| 罗平县| 钟山县| 溆浦县| 胶南市| 鹤壁市| 沛县| 定州市| 惠水县| 六枝特区| 南宁市| 邵东县| 南昌县| 宣武区| 吉隆县| 灌云县| 剑川县| 弋阳县| 宝鸡市| 新昌县| 蓝田县| 卓资县| 富锦市| 沙洋县| 阳江市| 余庆县| 德昌县| 德钦县|