怎么处理Hibernate里的date类型? 不是我不会处理,而是师傅说了“如果害怕出错的话,可以将除了主键Id之外的所有字段设为String类型,包括Date类型”,但我觉得这样不妥,请大家谈谈自己的看法吧! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我知道,我是在想用在数据库中用String代替date类型是否合适? http://blog.csdn.net/smartcat86/archive/2008/01/29/2070821.aspx楼主 看看这里的 介绍 当然不能这么做了!比如有一个字段是金额,那我要求总金额,你用 varchar 了那怎么 sum 呢? 比如说,date 类型在 Oracle 中占用 7 个字节,如果采用 varchar2 的话,年月日时分秒,加上分隔符 2010-03-01 23:39:00 需要占用 19 个字节,占用空间增加了 12 个字节。不仅如此,这个日期只能以这种格式进行显示,要更改显示格式的话,比如说不需要秒,那就要进行字符串处理。如果把一个字符串式的日期存入数据库中,并且程序中也没有进行校验的话,那对数据的正确性会产生威害。另外,其实现在有很多的应用,主键用的都是字符串呢,比如主键使用 UUID。主键使用 UUID 有利也有弊,对此正反双方都是争论不休的。 如果只是一个主键,想建非聚集索引怎么办?你这个什么师傅啊?我用的是SQL Server,关于数据字段的存储原理,请看我的读书笔记,相信你不会有些问题。http://blog.csdn.net/downmoon/archive/2010/01/26/5256548.aspx 其实用varchar2也是可以的 只要该参数只负责显示 不参与某些逻辑运算的话 就可以 有些时候像money这类的东西 我也存储成varchar 因为把他保存成number我在程序里还得对那些数进行操作 怪麻烦的 我也来学习了,呵呵。平常我也用的date转String辅以字符串操作来应付几种时间格式的需求,下次得改用Date了。 不用那样用的Date转为String后,Date的大小比较,排序问题就变得很麻烦 自己做一个类型转换器, public class DateConverter implements Converter { public Object convert (Class type, Object value) { if (value == null) { return value; } if (value instanceof java.util.Date) { return value; } if (value instanceof String) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date d = sdf.parse((String)value); return d; } } //注册转换器 public void init() { ConvertUtils.register(new DateConverter(), java.util.Date.class); }} 实体类中的日期用的java.util.Date,在实体类的映射文件里边这么写class=java.util.Date,oracle是自己的Date类型,长度默认为7 为什么给 某个字段的get方法加上 @Temporal(TemporalType.TIMESTAMP) 这个注解后,在@Column(name = "xxx_DATE", nullable = false, length = 7)指定他的长度为7 就没有用了呢 对了 多用时间戳 少用Date 我之前的做法是,数据库的字段还是为Date类型,Hibernate中,主要将Pojo中的对象和映射文件中的Date类型都改为String类型。 我怎么用hibernate不能删除date类型啊 制作一个报表,要从几个java bean里获取数据,大神们请问怎么做啊? 求解。 AJAX的纠结问题,求解答! hibernate search整合spring 介绍几本j2ee的书籍 有没有下载java函数库网站 关于用xdoclet生成hibernate的mapping文件和生成数据表问题....... Struts问题。 还是csdn里的兄弟好啊,郁闷的偶来说个事情,大家看看是不是我错了 高分求java源代码! hibernate的注解问题 Linux下搭建jsp环境使用的jdbc和windows下一样吗
我用的是SQL Server,关于数据字段的存储原理,请看我的读书笔记,相信你不会有些问题。
http://blog.csdn.net/downmoon/archive/2010/01/26/5256548.aspx
其实用varchar2也是可以的 只要该参数只负责显示 不参与某些逻辑运算的话 就可以 有些时候像money这类的东西 我也存储成varchar 因为把他保存成number我在程序里还得对那些数进行操作 怪麻烦的
平常我也用的date转String辅以字符串操作来应付几种时间格式的需求,下次得改用Date了。
Date转为String后,Date的大小比较,排序问题就变得很麻烦
public class DateConverter implements Converter { public Object convert (Class type, Object value) {
if (value == null) {
return value;
}
if (value instanceof java.util.Date) {
return value;
}
if (value instanceof String) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d = sdf.parse((String)value);
return d;
}
}
//注册转换器
public void init() {
ConvertUtils.register(new DateConverter(), java.util.Date.class);
}
}
oracle是自己的Date类型,长度默认为7
@Column(name = "xxx_DATE", nullable = false, length = 7)指定他的长度为7 就没有用了呢
Hibernate中,主要将Pojo中的对象和映射文件中的Date类型都改为String类型。