问答详情
源自:1-11 通过Hibernate API编写访问数据库的代码

为什么我使用new Date()时无法插入数据?

Students s=new Students(1, "小明", "男",new Date(), "武当山");

我的持久化类和老师的一样,测试后,成功建表,但是没有插入这条记录。

我把出生日期的Date型改成String后却插入成功了



提问者:DHChan 2015-12-11 14:20

个回答

  • 慕九州1241956
    2018-06-27 09:59:39

    将两边的包都改成

    import java.util.Date;


  • DHChan
    2015-12-11 20:48:13

    我很好奇为什么老师的

    new Date()

    这个就对了

    我的代码就是照着老师的代码敲的呀

  • 慕男婶
    2015-12-11 15:09:54

    Date date = new Date(); 
    Timestamp timeStamp = new Timestamp(date.getTime()); //需要转换一下
    Students s=new Students(1, "张三丰", "男",timeStamp, "武当山");
    session.save(s);//保存对象进入数据库


  • DHChan
    2015-12-11 15:05:42

    private int sid;//学号

    private String sname;//姓名

    private String gender;//性别

    private Date birthday;//出生日期

    private String address;//地址



    构造器:

    public Students(int sid, String sname, String gender, Date birthday, String address) {

    //super();

    this.sid = sid;

    this.sname = sname;

    this.gender = gender;

    this.birthday = birthday;

    this.address = address;

    }

    测试类:

    Students s=new Students(1, "张三丰", "男",new Date(), "武当山");

    session.save(s);//保存对象进入数据库

    Students.hbm.xml:

    http://img.mukewang.com/566a758c000192dd05370348.jpg


    结果:

    566a7569000166b605000215.jpg

    566a756a0001b26505000111.jpg

    566a756a0001112f05000275.jpg

    566a756a000146ba05000152.jpg


  • 慕男婶
    2015-12-11 14:37:58

    那就说明数据库存储日期的字段类型是String而不是Date类型