//$Id: DateType.java 8891 2005-12-21 05:13:29Z oneovthafew $
package org.hibernate.type;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.sql.Types;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import org.hibernate.EntityMode;
import org.hibernate.Hibernate;
import org.hibernate.HibernateException;
import org.hibernate.dialect.Dialect;
/**
* <tt>date</tt>: A type that maps an SQL DATE to a Java Date.
* @author Gavin King
* @modify by zhenjw
*/
public class DateType extends MutableType implements IdentifierType, LiteralType {
private static final String DATE_FORMAT = "dd MMMM yyyy";
public Object get(ResultSet rs, String name) throws SQLException {
//return rs.getDate(name);
Timestamp tamp=rs.getTimestamp(name);
Date result=null;
if(tamp!=null)
result=new Date(tamp.getTime());
return result;
}
public Class getReturnedClass() {
return java.util.Date.class;
}
public void set(PreparedStatement st, Object value, int index) throws SQLException {
Date sqlDate;
if ( value instanceof Date) {
sqlDate = (Date) value;
}
else {
sqlDate = new Date( ( (java.util.Date) value ).getTime() );
}
st.setDate(index, sqlDate);
}
public int sqlType() {
return Types.DATE;
}
public boolean isEqual(Object x, Object y) {
if (x==y) return true;
if (x==null || y==null) return false;
java.util.Date xdate = (java.util.Date) x;
java.util.Date ydate = (java.util.Date) y;
if ( xdate.getTime()==ydate.getTime() ) return true;
Calendar calendar1 = java.util.Calendar.getInstance();
Calendar calendar2 = java.util.Calendar.getInstance();
calendar1.setTime( xdate );
calendar2.setTime( ydate );
return Hibernate.CALENDAR_DATE.isEqual(calendar1, calendar2);
}
public int getHashCode(Object x, EntityMode entityMode) {
Calendar calendar = java.util.Calendar.getInstance();
calendar.setTime( (java.util.Date) x );
return Hibernate.CALENDAR_DATE.getHashCode(calendar, entityMode);
}
public String getName() { return "date"; }
public String toString(Object val) {
return new SimpleDateFormat(DATE_FORMAT).format( (java.util.Date) val );
}
public Object deepCopyNotNull(Object value) {
return new Date( ( (java.util.Date) value ).getTime() );
}
public Object stringToObject(String xml) throws Exception {
return DateFormat.getDateInstance().parse(xml);
}
public String objectToSQLString(Object value, Dialect dialect) throws Exception {
return '\'' + new Date( ( (java.util.Date) value ).getTime() ).toString() + '\'';
}
public Object fromStringValue(String xml) throws HibernateException {
try {
return new SimpleDateFormat(DATE_FORMAT).parse(xml);
}
catch (ParseException pe) {
throw new HibernateException("could not parse XML", pe);
}
}
}
分享到:
相关推荐
在使用Hibernate进行数据库操作时,有时会遇到一个常见的问题,即当从数据库中查询Date类型的数据并由Hibernate返回时,发现结果中的时分秒部分不正确。这个问题通常源于多个因素,包括日期时间的序列化与反序列化...
《深入理解Hibernate3.0:核心库解析及应用》 Hibernate3.0作为一个经典且广泛使用的对象关系映射(ORM)框架,极大地简化了Java开发者处理数据库操作的复杂性。这个压缩包包含了Hibernate3.0的核心组件以及其依赖...
hibernate3.0的中文api帮助文档 hibernate3.0的中文api帮助文档 hibernate3.0的中文api帮助文档 hibernate3.0的中文api帮助文档 hibernate3.0的中文api帮助文档 hibernate3.0的中文api帮助文档 hibernate3.0的中文...
在Java EE应用中,Hibernate3.0版本是当时的一个重要里程碑,引入了许多新特性并提升了性能。 ### 1. Hibernate 概述 Hibernate 允许开发人员通过Java对象来操作数据库,而无需编写SQL语句。它将Java类与数据库表...
hibernate3.0jar包
Hibernate 3.0 的JAR 驱动包 希望对大家有用 就一点分呵呵
《深入剖析Hibernate 3.0:源码解析与应用实践》 Hibernate,作为一个开源的对象关系映射(ORM)框架,自其诞生以来就受到了广大Java开发者们的热烈欢迎。本篇文章将针对“hibernate-3.0.zip”这一版本进行详细讲解...
11. **延迟加载(Lazy Loading)**: 为了解决效率问题,Hibernate提供了懒加载机制,只在真正需要时才加载关联的对象,避免了大数据量的无谓传输。 12. **批处理**: Hibernate支持批处理操作,可以一次提交多个操作...
Hibernate 3.0 是一个非常重要的Java持久化框架,它为开发者提供了ORM(对象关系映射)服务,使得在Java应用程序中操作数据库变得更加便捷。在这个jar包中,不仅包含了Hibernate的核心库,还内置了API帮助文档,对于...
### Hibernate 3.0 完整中文版教程知识点解析 #### 一、概述 Hibernate 是一个开放源代码的 Java 持久层框架,它极大地简化了数据持久化的编程工作,使得 Java 开发人员可以使用面向对象的方式进行数据库操作。...
Struts 1.1、Hibernate 3.0 和 SQL Server 2005 数据库驱动包是构建基于Java的企业级Web应用程序的关键组件。这些技术在2000年代中期广泛应用于开发面向服务架构(SOA)和模型视图控制器(MVC)模式的系统。 Struts...
Struts1.2、Spring2.3 和 Hibernate3.0 是经典的Java企业级开发框架组合,被称为SSH(Struts-Spring-Hibernate)集成框架。这个组合在2000年代末到2010年初非常流行,它们各自解决了不同的问题,并通过相互配合,...
hibernate3.0连接SQLServer代码简单例子,单表t_user例子,可以运行。 数据库表设计 CREATE TABLE [dbo].[t_user]( [t_id] [nvarchar](50) NOT NULL, [t_login_name] [nvarchar](50) NULL, [t_password] ...
Hibernate3.0提供了一套类型系统,允许自定义类型映射,比如日期时间类型的处理。 在Eclipse环境下,使用Hibernate3.0的API源文件可以帮助开发者更好地理解和使用Hibernate的各种功能,查看类和方法的实现细节,...
hibernate 包 3.0 必备
hibernate3.0.jar
标题 "spring2.5+struts2+hibernate3.0JAR包集合" 提及的是一个集成开发环境中的核心组件,这三个框架是Java Web开发中的重要工具,用于构建高效、可扩展的企业级应用程序。 Spring 2.5是Spring框架的一个版本,它...
在Hibernate 3.0中,有两个重要的DTD文件:`hibernate-configuration-3.0.dtd`和`hibernate-mapping-3.0.dtd`,它们定义了Hibernate配置文件和映射文件的结构。 `hibernate-configuration-3.0.dtd` 是Hibernate配置...
### Struts2.0、Spring2.0与Hibernate3.0整合开发快速入门知识点解析 #### 一、Struts2.0与Hibernate3.0整合基础 **知识点1:Struts2.0简介** - **定义**: Struts2是Apache基金会下的一个开源项目,它是一个基于...
公文管理、申请审批、公告管理、会议管理、权限管理、个人办公、客户管理、人事等等。项目技术:Struts1.2 + Hibernate3.0 + Spring2 +DWR。java毕业设计 jsp毕业设计 ssh毕业设计