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

简介: ------------------------------------------------------------------------这篇文章是我在进行hibernate查询时由于百度搜索很杂,就亲手编写并侧成功后写的数据库中日期数据保存类型为DateUsers是数据库表明,date是数据1.

------------------------------------------------------------------------这篇文章是我在进行hibernate查询时由于百度搜索很杂,就亲手编写并侧成功后写的

数据库中日期数据保存类型为Date

Users是数据库表明,date是数据

1.输入两个日期,查数据库中数据在两个日期之间的数据

String hql = "from Users c where c.date between ? and ?";//这里的问号要传入的是日期对象
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Query query=session.createQuery(hql);
        try {
query.setParameter(0,format.parse("2017-08-01 21:21:47"));
} catch (HibernateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}//此时应传入Date类型
        try {
query.setParameter(1,format.parse("2017-09-30 21:21:47"));
} catch (HibernateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
        List<Users> list=query.list();
        for(Users u:list){
        System.out.println(u);
        }

2.输入开始时间,查该开始时间之后的数据(截止时间的话把 < 改成 > 就行了 )

String hql = "from Users c where c.date < ?";//这里的问号要传入的是日期对象
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Query query=session.createQuery(hql);
        try {
query.setParameter(0,format.parse("2017-08-30 21:21:47"));
} catch (HibernateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}//此时应传入Date类型
        List<Users> list=query.list();
        for(Users u:list){
        System.out.println(u);
        }

3.获得这个日期前后n天的时刻

 Date b = new Date();
 SimpleDateFormat f = new SimpleDateFormat("yyyy/MM/dd,hh:mm:ss");
 Calendar c = Calendar.getInstance();
 System.out.println(f.format(c.getTime()));
 c.add(Calendar.DAY_OF_MONTH, n);
 System.out.println(f.format(c.getTime()));

n可以为正也可以为负。为正表示这个日期之后的n天,为负表示这个时刻之前的日期

---------------------------------------------------------------------------------------------------------------------

相关文章
|
17天前
|
SQL Java 数据库连接
从理论到实践:Hibernate与JPA在Java项目中的实际应用
本文介绍了Java持久层框架Hibernate和JPA的基本概念及其在具体项目中的应用。通过一个在线书店系统的实例,展示了如何使用@Entity注解定义实体类、通过Spring Data JPA定义仓库接口、在服务层调用方法进行数据库操作,以及使用JPQL编写自定义查询和管理事务。这些技术不仅简化了数据库操作,还显著提升了开发效率。
29 3
|
26天前
|
缓存 Java 数据库连接
Hibernate:Java持久层框架的高效应用
通过上述步骤,可以在Java项目中高效应用Hibernate框架,实现对关系数据库的透明持久化管理。Hibernate提供的强大功能和灵活配置,使得开发者能够专注于业务逻辑的实现,而不必过多关注底层数据库操作。
13 1
|
3月前
|
Java 数据库连接 缓存
Hibernate性能调优:五大秘籍,让应用效能飙升,告别慢如蜗牛的加载,体验丝滑般流畅!
【8月更文挑战第31天】本文深入探讨了提升Hibernate应用性能的五大技巧,包括选择合适的缓存策略、优化查询语句、合理使用Eager与Lazy加载、批量操作与事务管理以及利用索引和数据库优化。通过正确配置多级缓存、分页查询、延迟加载、批量处理及合理创建索引,能够显著提高应用响应速度与吞吐量,改善用户体验。这些技巧需根据具体应用场景灵活调整,以实现最佳性能优化效果。
183 0
|
3月前
|
SQL 数据库 Java
HQL vs SQL:谁将统治数据库查询的未来?揭秘Hibernate的神秘力量!
【8月更文挑战第31天】Hibernate查询语言(HQL)是一种面向对象的查询语言,它模仿了SQL的语法,但操作对象为持久化类及其属性,而非数据库表和列。HQL具有类型安全、易于维护等优点,支持面向对象的高级特性,内置大量函数,可灵活处理查询结果。下面通过示例对比HQL与SQL,展示HQL在实际应用中的优势。例如,HQL查询“从员工表中筛选年龄大于30岁的员工”只需简单地表示为 `FROM Employee e WHERE e.age &gt; 30`,而在SQL中则需明确指定表名和列名。此外,HQL在处理关联查询时也更为直观易懂。然而,对于某些复杂的数据库操作,SQL仍有其独特优势。
59 0
|
3月前
|
Java 数据库连接 数据库
强强联手!JSF 与 Hibernate 打造高效数据访问层,让你的应用如虎添翼,性能飙升!
【8月更文挑战第31天】本文通过具体示例详细介绍了如何在 JavaServer Faces (JSF) 应用程序中集成 Hibernate,实现数据访问层的最佳实践。首先,创建一个 JSF 项目并在 Eclipse 中配置支持 JSF 的服务器版本。接着,添加 JSF 和 Hibernate 依赖,并配置数据库连接池和 Hibernate 配置文件。然后,定义实体类 `User` 和 DAO 类 `UserDAO` 处理数据库操作。
62 0
|
3月前
|
SQL Java 数据库连接
|
3月前
|
缓存 Java 数据库连接
什么是 Hibernate 查询语言或 HQL?
【8月更文挑战第21天】
124 0
|
3月前
|
SQL 安全 Java
|
5月前
|
SQL Java 数据库连接
技术经验分享:Hibernate之HQL
技术经验分享:Hibernate之HQL
31 0
|
5月前
|
SQL Java 数据库连接
从理论到实践:Hibernate与JPA在Java项目中的实际应用
【6月更文挑战第25天】在Java持久层,Hibernate与JPA提供ORM及数据库操作简化。JPA是EE规范,定义ORM接口;Hibernate是其实现,功能丰富。在一个在线书店项目中,使用@Entity标注实体类如Book,通过JpaRepository接口(如BookRepository)进行数据访问。服务层调用仓库接口方法,如搜索书籍。当需自定义查询时,可使用JPQL或SQL。Spring的@Transactional注解处理事务管理,展示出高效开发流程。
47 0

相关课程

更多
下一篇
无影云桌面