应用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天,为负表示这个时刻之前的日期

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

相关文章
|
5天前
|
SQL Java 数据库连接
技术经验分享:Hibernate之HQL
技术经验分享:Hibernate之HQL
|
7天前
|
SQL Java 数据库连接
从理论到实践:Hibernate与JPA在Java项目中的实际应用
【6月更文挑战第25天】在Java持久层,Hibernate与JPA提供ORM及数据库操作简化。JPA是EE规范,定义ORM接口;Hibernate是其实现,功能丰富。在一个在线书店项目中,使用@Entity标注实体类如Book,通过JpaRepository接口(如BookRepository)进行数据访问。服务层调用仓库接口方法,如搜索书籍。当需自定义查询时,可使用JPQL或SQL。Spring的@Transactional注解处理事务管理,展示出高效开发流程。
|
7天前
|
Java 数据库连接 API
数据库与Java的无缝对接:Hibernate与JPA的集成与应用
【6月更文挑战第25天】Java企业级应用中,Hibernate和JPA是ORM主流框架。JPA是标准API,定义对象-关系映射规范,强调标准化和可移植性。Hibernate是JPA的具体实现,扩展了更多功能,如强大的查询语言和缓存机制。两者集成允许开发者利用Hibernate性能,通过JPA注解保持代码规范。示例展示了如何使用JPA注解定义实体和Hibernate执行查询,实现数据库操作。这种方式提升了开发效率和应用质量。
|
7天前
|
缓存 Java 数据库连接
Java开发者必备:Hibernate与JPA在企业级应用中的最佳实践
【6月更文挑战第25天】Java企业开发常用Hibernate和JPA,两者通过ORM简化数据库操作,提升开发效率。它们支持复杂查询,具有良好的可扩展性。最佳实践中,应注意映射配置的合理性,优化查询性能,利用缓存提升性能,以及妥善管理事务。示例代码展示了使用JPA进行分页查询的方法。
|
7天前
|
SQL Java 数据库连接
Java持久化革命:Hibernate与JPA的实战应用
【6月更文挑战第25天】Java世界中,JPA作为ORM规范简化了数据库交互,而Hibernate是其实现者。通过引入依赖、定义注解实体类、配置 Hibernate,开发者能便捷地进行数据操作。Hibernate的使用减少了手动SQL的需求,提升了开发和维护效率,展示了其在持久化技术中的革命性影响和价值。
|
2月前
|
SQL Java 数据库连接
Hibernate - HQL对象检索详解
Hibernate - HQL对象检索详解
35 0
|
Java 数据库连接
HQL数据查询(Hibernate推荐)
HQL数据查询(Hibernate推荐)
109 0
|
开发框架 缓存 安全
Hibernate Validator的应用实践
Hibernate Validation目前最新的稳定版本是:5.1.3。 下载地址 官网地址 官方英文使用手册 官方中文使用手册地址 (中文版目前最新的是4.3版本) 具体用法可以参考官方文档。
195 0
|
SQL 存储 数据可视化
Java Web之Hibernate的高级应用(数据库实体关联之间的映射规则、实体继承关系映射、Hibernate查询语言)
Java Web之Hibernate的高级应用(数据库实体关联之间的映射规则、实体继承关系映射、Hibernate查询语言)
165 0
Java Web之Hibernate的高级应用(数据库实体关联之间的映射规则、实体继承关系映射、Hibernate查询语言)