Mybatis学习笔记-mybatis对时间的处理

数据库字段类型为TIMESTEAP,POJO中成员变量类型为DATE。
测试时,把参数的jdbcType指定为了‘TIMESTAMP’,测试存入数据库的时间只有年月日,而没有时分秒,后来将jdbcType改为DATA类型,还是没有时分秒的数据。
代码片段如下:


          INSERT INTO t_email
               () VALUES 
          (#{id},#{sender},#{senderName},#{subject},
           #{context},#{sendDate,jdbcType=DATE})
    
 
          INSERT INTO t_email
               () VALUES 
          (#{id},#{sender},#{senderName},#{subject},
           #{context},#{sendDate,jdbcType=TIMESTEMP})
    

无奈╮(╯-╰)╭,后来索性把jdbcType去掉了,哇靠,居然成了!


          INSERT INTO t_email
               () VALUES 
          (#{id},#{sender},#{senderName},#{subject},
           #{context},#{sendDate})
    
@Test
    public void emailTest(){
        EmailDomain emailDomain = new EmailDomain();
        emailDomain.setId(5);
        emailDomain.setSender("[email protected]");
        emailDomain.setSenderName("zhangsan");
        emailDomain.setSubject("aaa");
        emailDomain.setSendDate(new Date());
        emailDomain.setContext("aaa");
        ResumeService resumeService = applicationContext.getBean("ResumeService",ResumeService.class);
        resumeService.insertEmailInfo(emailDomain);
    }

Mybatis学习笔记-mybatis对时间的处理_第1张图片

这个问题解决了,从数据库中拿数据的时候又出问题了。
起初的结果集映射如下:

"com.zd.site.domain.resume.EmailDomain" id="emailMapper">
          <id property="id" column="ID"/>
          <result property="sender" column="SENDER"/>
          <result property="senderName" column="SENDER_NAME"/>
          <result property="subject" column="SUBJECT"/>
          <result property="context" column="CONTEXT"/>
          <result property="sendDate" column="SEND_DATE" javaType="date" jdbcType="DATE"/>
    

此时获取到的data数据没有时分秒信息。

EmailDomain [id=4, sender=zenderAdmin@126.com, senderName=zhangsan, subject=aaa, context=aaa, sendDate=Wed Aug 05 00:00:00 ULAT 2015]

然后把jdbcType改成TIMESTAMP或直接去掉,丢了的信息又回来了。

EmailDomain [id=4, sender=zenderAdmin@126.com, senderName=zhangsan, subject=aaa, context=aaa, sendDate=Wed Aug 05 07:02:27 ULAT 2015]

总结:
jdbcType=”DATE” 不论是持久化数据还是获取数据,都只能得到年月日信息。
jdbcType=”TIMESTAME”或不指定jdbcType属性,在持久化数据和获取数据时都会带有时分秒信息。

你可能感兴趣的:(MyBatis)