package com.gary.util;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* Hibernate日期查询工具,用于YYYY-MM-DD格式日期查询
* 传入YYYY-MM-DD格式字符串参数
* 返回java.util.Date类型数组,array[0]=YYYY-MM-DD 0:00:00,array[1]=YYYY-MM-DD 23:59:59
* 方便调用criteria.add(Restrictions.between("targetTime", array[0], array[1]));
* @author gary
*
*/
public class HibernateDateUtil {
public static Calendar cal = Calendar.getInstance();
public static DateFormat dateFormat = null;
public static Date date = null;
/**
* Hibernate日期查询工具
* @param dateStr 日期字符串,YYYY-MM-DD格式
* @return 日期数组,Date[0]=YYYY-MM-DD 0:00:00,Date[1]=YYYY-MM-DD 23:59:59
*/
public static Date[] hibernateDateHelper(String dateStr){
Date[] dateArray = new Date[2];
dateArray[0] = parseDate(dateStr);
dateArray[0] = getDateStart(dateArray[0]);
dateArray[1] = getDateEnd(dateArray[0]);
return dateArray;
}
/**
* 格式化日期
* @param dateStr String 字符型日期
* @param format String 格式
* @return Date 日期
*/
public static Date parseDate(String dateStr, String format) {
try {
dateFormat = new SimpleDateFormat(format);
String dt = dateStr.replaceAll("-", "/");
if ((!dt.equals("")) && (dt.length() < format.length())) {
dt += format.substring(dt.length()).replaceAll("[YyMmDdHhSs]", "0");
}
date = (Date) dateFormat.parse(dt);
} catch (Exception e) {
}
return date;
}
/**
* 获取日期最早时间,如传入2010-12-26,返回2010-12-26 0:00:00
* @param date
* @return
*/
public static Date getDateStart(Date d){
cal.setTime(d);
cal.set(Calendar.HOUR, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
return cal.getTime();
}
/**
* 获取日期最晚时间,如传入2010-12-26,返回2010-12-26 23:59:59
* @param date
* @return
*/
public static Date getDateEnd(Date d){
cal.setTime(d);
cal.set(Calendar.HOUR, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
return cal.getTime();
}
/**
* 格式化日期
* @param dateStr String 字符型日期:YYYY-MM-DD 格式
* @return Date 日期
*/
public static Date parseDate(String dateStr) {
return parseDate(dateStr, "yyyy/MM/dd");
}
/**
* 输出日期
* @param date
* @return
*/
public static String printDate(Date date){
return date.toLocaleString();
}
public static void main(String[] args) {
String dateStr = "2010-12-27";
Date start = hibernateDateHelper(dateStr)[0];
Date end = hibernateDateHelper(dateStr)[1];
System.out.println("start:" + printDate(start) + ", end:" + printDate(end));
}
}
分享到:
相关推荐
总的来说,Hibernate的查询语言提供了一套灵活且强大的工具,使得开发者能够根据需求选择合适的查询方式,无论是面向对象的HQL,还是原生SQL,都能够高效地处理数据库操作。在实际开发中,应根据具体场景选择最适合...
Hibernate是Java领域中一款广泛应用的关系型数据库对象映射...对于需要使用Hibernate的开发者来说,选择合适的版本取决于项目需求和个人喜好,但不论哪个版本,都为Java开发人员提供了一种强大而高效的数据库访问工具。
1. **Hibernate Core**:这是Hibernate的基础,提供了实体管理、会话管理、查询语言(HQL)和 Criteria API等功能。 2. **JPA(Java Persistence API)**:虽然Hibernate最初并不是为JPA设计的,但后来版本中已经很...
本文详细介绍了一种具体的实现方案,从工程目录的搭建、资源文件的准备到Hibernate的配置与查询功能的实现,再到WebService服务的开发与测试,最后到客户端程序的编写与运行,为读者提供了一个完整的实践案例。
### Hibernate实体类注解详解 ...这些高级特性使得Hibernate成为企业级应用开发的首选工具之一。 总之,Hibernate实体类注解的深度理解与恰当应用,是构建高性能、高可用性的Java应用程序的关键技能。
总结来说,Hibernate 5.2.3是Java开发中一个重要的ORM工具,它提供了高效、灵活的数据库操作方式,简化了数据库编程,并且具有丰富的特性,如对象关系映射、查询语言、缓存机制等,极大地提高了开发效率和应用性能。...
总结起来,Hibernate插件对于Eclipse用户来说是一个非常实用的工具,它简化了数据库操作,提供了丰富的功能,如生成映射文件、持久化类,以及运行HQL查询等。通过正确安装和使用,开发者可以更加高效地进行Java持久...
Hibernate是一个流行的Java对象关系映射(ORM)工具,它允许开发人员使用面向对象的方式来处理数据库操作,从而避免了直接编写SQL代码的繁琐工作。 在描述中提到的"hibernate已编译",意味着这个压缩包包含了已经过...
Hibernate查询语言(HQL)是Java开发者在使用Hibernate框架时进行数据检索的一种强大的工具。它是一种面向对象的查询语言,允许开发者用类名和属性名而不是数据库表和字段来编写查询,极大地简化了数据库操作。本...
4. **查询语言**: HQL(Hibernate Query Language)是Hibernate的SQL扩展,用于查询对象。另外,Criteria API提供了一种类型安全的、面向对象的查询方式。 5. **缓存**: Hibernate支持一级缓存(Session级别的...
Hibernate 是一个强大的 ...总之,Hibernate API 提供了全面的工具集,让开发者能够高效地处理数据库操作,同时通过扩展接口支持数据库独立性,增强了灵活性和可维护性。理解并熟练使用这些接口是掌握Hibernate的关键。
8. **类型转换**:hibernate-types-52.jar包含了一些自定义的Hibernate类型,用于处理如JSON、日期时间等复杂类型的数据。 9. **JPA规范**:如javax.persistence-api.jar,提供了JPA的规范接口,使得Hibernate可以...
总的来说,Hibernate 4.4.0版本不仅是一个稳定可靠的ORM框架,而且在性能、易用性和功能上都有显著提升,是Java Web开发者的得力工具。对于初学者,可以通过学习这个版本了解ORM的基本概念和使用方法;对于有经验的...
Hibernate,作为Java领域中广泛使用的对象关系映射(ORM)框架,一直以来都是开发人员的重要工具,尤其是在处理数据库交互时。本篇文章将深入探讨2017年10月12日发布的Hibernate 5.2.12版本,这是当时最新且完整的...
【Struts Hibernate 图书管理系统详解】 本项目是一个基于Struts和Hibernate框架的...通过Struts和Hibernate的结合,本图书管理系统实现了高效的数据访问和用户交互,为图书馆或个人图书收藏提供了便捷的管理工具。
7. **commons-collections-x.x.jar** 和 **commons-lang3-x.x.jar**:Apache Commons Collections提供了丰富的集合操作工具,而Commons Lang提供了各种实用的字符串处理、日期时间操作等函数,它们在Hibernate中起到...
第12课 使用hibernate工具类将对象模型生成关系模型 19 第13课 ID主键生成策略 20 一、 Xml方式 20 元素(主键生成策略) 20 二、 annotateon方式 21 1、AUTO默认 21 2、IDENTITY 22 3、SEQUENCE 22 4、为Oracle指定...
总之,Hibernate Annotation库是Java开发中不可或缺的工具,它通过注解的方式简化了ORM的过程,使得开发者能更专注于业务逻辑,而不是底层的数据操作细节。通过理解并熟练使用这些注解,可以有效地提升开发效率和...
- **查询缓存优化**:Hibernate 3.5.0-Final 对查询缓存进行了优化,这有助于提高应用程序的整体性能。 - **批量更新和删除支持**:新版本支持更高效的批量更新和删除操作,这对于处理大量数据时尤其有用。 - **查询...
在Hibernate 3.6.7这个版本中,我们找到了一系列用于开发的JAR包,这通常包含了核心库、工具、以及可能的依赖库。 1. **Hibernate核心组件**:Hibernate的核心组件主要包括`hibernate3.jar`,这个文件包含了...