SSH日期录入,日期精确不能精准到时分秒处理

          数据库类型定义为datetime的时候,数据库是精确到时分秒的,我们要录入的时候,hibernate只能用save方法进行录入,无法使用hql语句录入。但是会有很多人录入的时候日期只是精确到日,这是为什么呢,怎么实现精确到时分秒呢。

       我们先对HQL语句进行说明,为什么HQL语句不能执行添加操作呢,因为hibernate的HQL语言是用于面向对象实现的查询功能的,然而在插入操作中是不会涉及到任何查询动作的,所以HQL语句不能用于insert语句的插入操作,而select、update、delete语句都可以有可能实现查询。

比如:select语句是标准的查询,这个就不用说明了。

update语句:update对象名 set......where

delect语句:delect from 对象名 where......

update和delect都涉及到where的查询筛选过程,这个过程是需要采用HQL实现的,然而insert永远都不会涉及到筛选过程,所以所以hibernate没有对插入做insert实现,所以HQL语句不能执行插入操作,所hibernate实现插入操作只能使用save方法。

但是有一些人发现日期转换器写了,而且是转换到时分秒了,而且在控制台输出的也是有时分秒的,但是到了数据库里面就变成了精确到日了,这个问题怎么解决呢,其实很简单的。

如果你们使用的是由hibernate 的逆向工具从数据库表生成的*.hbm.xml ,对于数据库的date类型生成如下:

 

< property  name  =  "Knowledge_time"   type= "date">
             < column  name  =  "Knowledge_time"  />
         </ property  >

程序中的类型:
private Date Knowledge_time ;
但通过程序setKnowledge_time(new Date()) 的时候,插入到数据库的日期只到日,没有小时以后的数据。
只要把type类型改为timestamp就可以了
如下是最终修改:
         < property  name  = "Knowledge_time "  type = "timestamp" >
             < column  name  = "Knowledge_time "     />
         </ property  >


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值