您的位置:首页 > 数据库 > MySQL

在Hibernate里遇到Mysql的datetime类型怎么搞

2015-05-29 13:43 591 查看
情景:有一个叫Person类的JavaBean,有个birth属性,类型为java.util.Date,而且要设置Mysql数据库得有一个birth字段且类型为datetime(Mysql的datetime类型的日期格式:YYYY-MM-DD HH:MM:SS ),怎么搞?

第一步:要在Person.hbm.xml文件为这birthday属性配置,代码片段如下:

                  <property name="birth" type="timestamp">

                     <column name="birth"></column>

                   </property>

                注意:<property...>标签的type属性要设置为timestamp

第二步:.......省略.......代码片段如下:

@Test

public void add(){

  Configuration config = new Configuration();

  config.configure();

  SessionFactory sf = config.buildSessionFactory();

  Session session = sf.openSession();

  Transaction tx = session.beginTransaction();

  Person person = new Person();

  person.setName("abc");

  SimpleDateFormat ss = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
  String dateStr = "2002-07-11 11:27:13";
  try {

   Date date = ss.parse(dateStr);
   person.setBirth(date);

  } catch (ParseException e) {

   e.printStackTrace();

  }

  session.save(person);

  tx.commit();

  session.close();

 }

junit运行一下,然后用desc  Person命令查看一下Person表的结构:



眼神好的小伙伴们第一眼就能发现birth字段已经是datetime类型了

总结:…………

温馨提示:我第一次把Person.hbm.xml文件的<property...>标签的type属性要设置为date,结果到数据库一查,发现person表的birth字段是date类型(Mysql的date类型的日期格式:YYYY-MM-DD),木有了时间部分的内容,然后我浅浅一笑,把type的属性值改为timestamp,达到了想要的效果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: