不是我不会处理,而是师傅说了“如果害怕出错的话,可以将除了主键Id之外的所有字段设为String类型,包括Date类型”,但我觉得这样不妥,请大家谈谈自己的看法吧!

解决方案 »

  1.   

    我知道,我是在想用在数据库中用String代替date类型是否合适?
      

  2.   

    http://blog.csdn.net/smartcat86/archive/2008/01/29/2070821.aspx楼主 看看这里的 介绍
      

  3.   

    当然不能这么做了!比如有一个字段是金额,那我要求总金额,你用 varchar 了那怎么 sum 呢?
      

  4.   

    比如说,date 类型在 Oracle 中占用 7 个字节,如果采用 varchar2 的话,年月日时分秒,加上分隔符 2010-03-01 23:39:00 需要占用 19 个字节,占用空间增加了 12 个字节。不仅如此,这个日期只能以这种格式进行显示,要更改显示格式的话,比如说不需要秒,那就要进行字符串处理。如果把一个字符串式的日期存入数据库中,并且程序中也没有进行校验的话,那对数据的正确性会产生威害。另外,其实现在有很多的应用,主键用的都是字符串呢,比如主键使用 UUID。主键使用 UUID 有利也有弊,对此正反双方都是争论不休的。
      

  5.   

    如果只是一个主键,想建非聚集索引怎么办?你这个什么师傅啊?
    我用的是SQL Server,关于数据字段的存储原理,请看我的读书笔记,相信你不会有些问题。
    http://blog.csdn.net/downmoon/archive/2010/01/26/5256548.aspx
      

  6.   


    其实用varchar2也是可以的 只要该参数只负责显示 不参与某些逻辑运算的话 就可以 有些时候像money这类的东西 我也存储成varchar 因为把他保存成number我在程序里还得对那些数进行操作 怪麻烦的 
      

  7.   

    我也来学习了,呵呵。
    平常我也用的date转String辅以字符串操作来应付几种时间格式的需求,下次得改用Date了。
      

  8.   

    不用那样用的
    Date转为String后,Date的大小比较,排序问题就变得很麻烦
      

  9.   

    自己做一个类型转换器, 
      
    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);
    }
    }
      
      

  10.   

    实体类中的日期用的java.util.Date,在实体类的映射文件里边这么写class=java.util.Date,
    oracle是自己的Date类型,长度默认为7
      

  11.   

    为什么给 某个字段的get方法加上 @Temporal(TemporalType.TIMESTAMP) 这个注解后,在
    @Column(name = "xxx_DATE", nullable = false, length = 7)指定他的长度为7 就没有用了呢
      

  12.   

    对了 多用时间戳 少用Date
      

  13.   

    我之前的做法是,数据库的字段还是为Date类型,
    Hibernate中,主要将Pojo中的对象和映射文件中的Date类型都改为String类型。
      

  14.   

    我怎么用hibernate不能删除date类型啊