Hibernate关于时间的操作

零基础学习大气污染模式(WRF、WRF-chem、smoke、camx等) 阅读详情

1、hibernate很大的一个特点就是屏蔽了数据库的差异,使用了hibernate就应该尽量用HQL来操作数据库(除非不得不用数据库本身的一些特性),而对于时间类型的比较hibernate也是支持的。

HQL:     and acceptDate<=:end

用一个时间类型来替换参数end:query.setDate("end",endDate);

2、顺便在提一个问题,我们经常碰到查询从A(起始时期)到B(结束日期)的纪录。如果数据库中字段类型为timestamp,那么查询2005-11-23到2005-11-23的纪录时不会出现2005-11-23那一天的纪录,哪怕你的比较符号用的是>=和<=;因为数据库中的2005-11-23的纪录是这样的格式2005-11-23 15:35:48:253,而query.setDate设置一个时间参数进去,他是用这个时间比较的2005-11-23 00:00:00 000,

所以因该用query.setTimeStamp("end",endDate);

如果从view层取到的date不包含后面的time信息,最好endDate.setHours(23);endDate.setMinutes(59);endDate.setSeconds(59);

对开始时间startDate.setHours(0);startDate.setMinutes(0);startDate.setSeconds(0);

这样就是查询 A-0:0:0 到 B-23:59:59时间段的数据:

3、Hibernate在保存和更新Date类型的数据到数据库的时候,如果设置不当,会舍弃时分秒,和数据库中Date类型的精确度不符(如Oracle的Date是带时分秒的).

引起的原因主要是mapping文件中的字段类型被设成了type="date",而mapping文件一般都是通过hibernate提供的工具生成的,hibernate提供的工具默认把数据库端date型的字段设成type="date".从而Hibernate在用JDBC做数据库更新的时候会用 statement的setDate(index, sqlDate),插入数据库的日期只有年月日.

            //用setTimestamp的方式,时分秒会被保存

            stmt.setTimestamp(1, new Timestamp(System.currentTimeMillis()));

使用时需要注意的问题:

1,如果是用Hibernate的对象来影射数据库操作(save,load..),需要将mapping文件的type="date"改成type="timestamp".

2,如果用Query(session的createQuery和createSQLQuery),在赋值的时候用query.setTimestamp(0, new Date());

 


【数据集】3D-GloBFP:全球首个三维建筑轮廓数据集 阅读详情

相关推荐

Meta开源Ego-Exo4D数据集:如何用1400小时多模态视频训练你的AI模型

Meta开源的Ego-Exo4D数据集包含1400小时多模态视频,涵盖第一人称和第三人称视角、眼动追踪、IMU传感器等多种模态,是AI模型训练的宝贵资源。本文详细介绍了从数据集下载、预处理到模型训练的全流程,帮助研究者高效利用这一多模态数据集进行AI模型开发。

weixin_29159441的博客 343

hql where语句查询条件 与时间比较大小

Date date=Calendar.getInstance().getTime(); hql.append("From Userwhere and s.time != null and and s.time <=:date "); Session session=MemberDao.getSession(); Query query=session.createQuery...

今天吃了吗的博客 2920

【UOJ170】Picks loves segment tree VIII

【题目链接】 点击打开链接 【前置阅读】 【BZOJ4695】最假女选手 【BZOJ3064】【TYVJ1518】CPU监控【UOJ169】【UR #11】元旦老人与数列 【思路要点】 前置阅读中的前两题中,我们分别对线段树的区间取最大/最小值和线段树的历史最大/最小值进行了研究。本题中,两类问题同时出现,因此我们

cz_xuyixuan的博客 1251

Struts Hibernate Spring 后台数据查询

Struts Hibernate Spring 后台数据查询 本文源自:http://blog.youkuaiyun.com/tannongchun/article/details/11034047 ,感谢作者的分享 自定义查询PropertyFilter与QBC 1、页面参数传递规则 参数规则:前缀+"_"+操作符+属性类型+"_"+属性名称     前缀:以"filter"开头    ...

iteye_21103的博客 315

别再死记硬背了!用LTspice和Simulink仿真,5分钟搞懂巴特沃斯、切比雪夫、贝塞尔滤波器的区别

本文通过LTspice和Simulink仿真工具,直观对比了巴特沃斯、切比雪夫和贝塞尔滤波器的特性差异。从通带波纹、过渡带陡峭度到相位线性度,详细解析了三种经典滤波器的设计哲学与应用场景,帮助工程师和学生快速掌握滤波器选型技巧,提升电路设计效率。

weixin_33910191的博客 523

电流镜结构实战:从零理解MOS管偏置电路设计(附吴金课程补充)

本文深入解析电流镜结构在MOS管偏置电路设计中的关键作用,从基本原理到实战应用全面覆盖。通过分析偏置电路的核心原理、破解设计难题的实用技巧,以及进阶优化策略,帮助工程师掌握这一模拟电路设计的核心技术。特别适合需要理解电流镜结构和基准电路设计的读者参考学习。

ujm5678901的博客 256

oracle数据库根据时间,hibernate根据时间日期来查询oracle数据库

hibernate根据时间日期来查询oracle数据库使用模糊查询:SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");Date startdate = sdf.parse(start_date);Date enddate = sdf.parse(end_date);List list = sess.createCriteria(My...

weixin_32042331的博客 322

华为OD机试双机位C卷 - 比赛 / 评委评分 (C++ & Python & JAVA & JS & GO)

华为OD机试双机位C卷 比赛,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。华为OD机试-比赛,华为OD机考-比赛。

qq_45776114的博客 1701

Hibernate查询方式汇总(一)

Hibernate查询方式: 1.基于原生sql查询。 2.基于hql的查询。 1.3.1、在查询语句中设定各种查询条件 1.3.2、支持投影查询,即仅检索出对象的部分属性 1.3.3、支持分页查询 1.3.4、支持连接查询 1.3.5、支持分组查询,允许使用HAVING 和 GROUP BY 关键字 1.3.6、提供内置聚集函数,如SUM(),MIN(),MAX()等 1.3.7、能够调用用户定...

林木森的博客 594

DDR5中的On-Die Termination(ODT)详解:电阻值支持及其背后的秘密

DDR5支持多档ODT电阻值,范围从40Ω到480Ω,均基于240Ω标准参考电阻RZQR_{ZQ}RZQ​。不同电阻档位对应不同的信号负载和功耗需求。校准电压点关键,常用0.8×VDD进行精准调校。CA信号间ODT匹配必须严格控制,保证命令总线稳定。选择合适的ODT值是高速内存设计中不可忽视的细节。

weixin_43199439的博客 2099

基于深度学习的水果新鲜程度检测系统(UI界面 + YOLOv8/v7/v6/v5代码 + 训练数据集)

本文详细介绍了如何使用YOLO系列模型(YOLOv5、YOLOv6、YOLOv7、YOLOv8)构建水果新鲜度检测系统。通过数据集准备、模型训练、推理过程以及UI界面的实现,我们能够构建一个实时检测水果新鲜度的系统。通过本博客,您可以全面了解如何应用深度学习技术解决实际问题,尤其是在智能监控和食品质量检测领域。

YOLO 815

Hibernate时间操作二

                                             Hibernate中使用Hql查询出一定时间段的记录import java.sql.Timestamp;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class GenHql

张波的技术积累 2622

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Hibernate操作时间需要注意的问题

1:Hibernate操作时间需要注意的问题         hibernate很大的一个特点就是屏蔽了数据库的差异,使用了hibernate就应该尽量HQL来操作数据库(除非不得不用数据库本身的一些特性),而对于时间类型的比较hibernate也是支持的。 HQL:     and acceptDate<=:end 用一个时间类型来替换参数end:query.setDa

裂缝中的阳光、的博客 360

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Hibernate 操作时间型数据的注意点

Hibernate在保存和更新Date类型的数据到数据库的时候,如果设置不当,会舍弃时分秒,和数据库中Date类型的精确度不符(如Oracle的Date是带时分秒的).

交换一个思想,能得到俩思想 3131

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Mysql+hibernate 长时间不操作再进入,导致连接池关闭的问题解决。

最近总是发现自己的MySQL数据库,隔天不登陆一次,就会出现以下错误: ERROR [2016-04-27 07:59:38] [http-bio-80-exec-10] org.hibernate.transaction.JDBCTransaction:95 - JDBC begin failed com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransi

历程 1553

java 日期与时间与hibernate操作

日期和时间的处理不仅在面试题中会考到,在实际项目开发中也是我们经常需要处理的问题,似乎没有哪个项目可以避开它们,我们常常在处理用户的出生年月日、注册日期,订单的创建时间等属性时用到,由此可见其重要性。 java.util.Date类 提到日期和时间,我想大家最先想到应该是java.util.Date类吧。Date类可以精确到毫秒数,这个毫秒数是相对于格林威治标准时间

About VincentCao,About Future... 5858

Hibernate操作时间需要注意的问题(转)

hibernate很大的一个特点就是屏蔽了数据库的差异,使用了hibernate就应该尽量HQL来操作数据库(除非不得不用数据库本身的一些特性),而对于时间类型的比较hibernate也是支持的。 HQL: and acceptDate 用一个时间类型来替换参数end:query.setDate("end",endDate); 顺便在提一个问题,我们经常碰到查询从A(起始时期)到

逆流而上的鲤鱼 1123

Hibernate hql 时间操作(加)

使用hql获取数据时,查询条件设计到日期,并且日期无法从程序中传入,只能利用hql来进行日期操作。

益达还有么的博客 5976

hibernate 操作mysql mysql保存时间比系统时间少8小时 解决办法

排除mysql时区以及系统时区差别的情况下 hibernate 少8小时的jdbc url jdbc:mysql://127.0.0.1:3306/popularfeelings?serverTimezone=GMT&characterEncoding=utf-8 解决办法 jdbc:mysql://127.0.0.1:3306/popularfeelings?serv

我的博客 4219

Hibernate映射oracle时间字段及查询操作

原先有套系统是基于sql server 2000开发的,其中对时间段的HQL查询操作如下: [code="java"] DateFormat dateFormat = DateFormat.getDateTimeInstance(); String queryString = "select u from UserAudit u where u.optuser like '"+usernam...

fengzhiyu_sh 272

Hibernate时间总结

1:Hibernate操作时间需要注意的问题      hibernate很大的一个特点就是屏蔽了数据库的差异,使用了hibernate就应该尽量HQL来操作数据库(除非不得不用数据库本身的一些特性),而对于时间类型的比较hibernate也是支持的。HQL:     and acceptDate用一个时间类型来替换参数end:query.setDate("end"

张波的技术积累 9565

数据库长时间未操作自己断开org.hibernate.exception.JDBCConnectionException: could not execute query

org.hibernate.exception.JDBCConnectionException: could not execute query   The last packet successfully received from the server was63717 milliseconds ago.The last packet sent successfully to the se

liyanhui1001的专栏 2789

Hibernate Hql时间比较

1.用hibernate根据实体自动生成的建表语句,Date类型的变量,oracle的话都是用timestamp(6)类型 2.使用Hql比较时间,用参数方式 Date date=Calendar.getInstance().getTime(); hql.append("From Member where and s.time != null and and

强强强子的博客 1万+

应用hibernate中的hql语句对日期的操作总结

这篇文章是我在进行hibernate查询时由于百度搜索很杂,就亲手编写并测试成功后写的 数据库中日期数据保存类型为Date Users是数据库表明,date是数据 1.输入两个日期,查数据库中数据在两个日期之间的数据 //这里的问号要传入的是日期对象 String hql = "from Users c where c.date between ? and...

保持愤怒 9416

hibernate中创建时间、更新时间字段的配置

项目中,一般在数据库中会记录该条目的创建时间,以及后续该条目被更新的时间。创建时间即插入数据库记录的时间,之后条目被update时不会更新,更新时间则在每次update时都会更新。那么,在hibernate中怎么达到这一目的呢。 实测以下方法可行: 假设我有一个bean名为imgFile,对应的数据库表为t_imgfile 其中create_time表示创建时间,对应

white__cat的专栏 4094
上一篇: java web中常见乱码问题
下一篇: java web中的监听器
「已注销」
博客等级 码龄16年 90粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值