mybatis no enum const class org.apache.ibatis.type.jdbctype.date 坑爹的配置 -凯发k8网页登录

快乐成长
posts - 110, comments - 101, trackbacks - 0, articles - 7
  凯发k8网页登录-凯发天生赢家一触即发官网 :: 凯发k8网页登录首页 :: 新随笔 :: 联系 :: 聚合  :: 管理
在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
   )
 

这些设置之多,太烦了,最让人烦的是  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
   )
 
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
还是不行哦

只有注册用户后才能发表评论。


网站导航:
              
 
网站地图