转自:https://lihaiming.iteye.com/blog/2248059

在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}

最新文章

  1. IIC总线
  2. mac brew 安装php扩展报错:parent directory is world writable but not sticky
  3. ios初级必看视频
  4. nios II--实验3——led 100M软件部分
  5. namenode需要升级
  6. hiho一下 第九十五周 数论四&#183;扩展欧几里德
  7. HTTP Live Streaming直播(iOS直播)技术分析与实现
  8. poj 2377 Bad Cowtractors
  9. Linux网络编程9&mdash;&mdash;对TCP与UDP的简易封装2.0
  10. Codeforces Round #114 (Div. 1) A. Wizards and Trolleybuses 物理题
  11. Codeforces Round #324 (Div. 2) B. Kolya and Tanya 快速幂
  12. Com 笔记 -可连接对象
  13. AngularJs练习Demo3
  14. mysql的触发器
  15. insertMany
  16. oracle创建数据库表空间 用户 授权 导入 导出数据库
  17. js 延时等待
  18. golang中的mutex锁
  19. vue 动态循环出的多个select 不能重复选择相同的数据
  20. Python3 与 C# 并发编程之~ Net篇

热门文章

  1. Codeforces 9D How many trees? 【计数类DP】
  2. For input string: "null"
  3. python,java操作mysql数据库,数据引擎设置为myisam时能够插入数据,转为innodb时无法插入数据
  4. json常用方法和本地存储方法
  5. 【DUBBO】dubbo的registry配置
  6. nginx-unit docker 运行以及php &amp;&amp;golang 简单使用
  7. parceljs 基本使用———又一个前端构建工具
  8. 我的 Git 学习过程
  9. easyui datagrid 基础方法和事件
  10. java的时间